2

だから私はこのスレッドを少し前に見つけました: 編集開始時に UITextField の背景を変更する

一番上の答えは、ユーザーが編集するときに textField の背景画像を変更するための素晴らしいリソースです。ただし、私の問題は、複数のテキストフィールドでこれを有効にするにはどうすればよいですか?

具体的には(私のアプリの場合)、ログインとパスワードのフィールドがあります。以下に投稿するコードを使用すると、最初のテキスト フィールドを取得して、ユーザーがタップしたときに画像を正しく変更できます。ただし、ユーザーが次のテキスト フィールドまたはキーボードの [次へ] オプションをタップしたときに、次のフィールドがそれに続くようにすることはできません。"textFieldShouldBeginEditing" と end のインスタンスは 1 つしか持てないため、同じセクションの下の両方のフィールドに画像変更のコードを設定する必要があります。ただし、これを行うと、最初のフィールドがタップされると両方のフィールドが変更され、2 番目のフィールドがタップされると両方が復元されます。

この 1 つの優れたコミュニティに関するアイデアはありますか?

ここにいくつかのコードがあります:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    _userNameTextField.background = [UIImage imageNamed:@"login_field_highlighted@2x"];
    return YES;
    _passwordTextField.background = [UIImage imageNamed:@"password_field_highlighted@2x"];
    return YES;
}

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    _userNameTextField.background = [UIImage imageNamed:@"login_field@2x"];
    return YES;
    _passwordTextField.background = [UIImage imageNamed:@"password_field@2x"];
    return YES;
}

- (BOOL) textFieldShouldReturn:(UITextField *)textField {
    NSLog(@"textFieldShouldReturn");
    if (textField == _userNameTextField) {
        [_passwordTextField becomeFirstResponder];
    } else if (textField == _passwordTextField) {
        [_passwordTextField resignFirstResponder];
    }

    return YES;

}
4

1 に答える 1

2

これらの各メソッドでは、textFieldShouldReturn で行ったのと同じように、どのテキスト フィールドがターゲットになっているかを確認する必要があります。

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    if (textField == _userNameTextField) {
        _userNameTextField.background = [UIImage imageNamed:@"login_field@2x"];
    } else if (textField == _passwordTextField) {
        _passwordTextField.background = [UIImage imageNamed:@"password_field@2x];
    }
    return YES;
}
于 2013-05-11T20:44:28.220 に答える