5

重複の可能性:テキストフィールド
(次へ/完了ボタン) をナビゲートする方法
iOS アプリの「次へ」キーが次のテキストフィールドに移動しない

ビューに 2 つのテキスト フィールドがあり、ユーザーがリターン キーを押したときにカーソルをメール テキスト フィールドからパスワード テキスト フィールドに移動させたいと考えています。パスワードのテキスト フィールドがフォーカスされている場合は、キーボードを非表示にしたいと思います。これが私が現在持っているものですが、うまくいきません...

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    return YES;
}

- (void)textFieldDidEndEditing:(UITextField *)textField {
    if(textField == self.emailTextField) {
        [self.passwordTextField becomeFirstResponder];
    }

    else if (textField == self.passwordTextField) {
        [textField resignFirstResponder];
    }
}

私は何が欠けていますか?あなたの知恵を前もってどうもありがとう!

4

3 に答える 3

5

メソッドにあるコードは、textFieldDidEndEditing:メソッドに属しtextFieldShouldReturn:ます。

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if(textField == self.emailTextField) {
        [self.passwordTextField becomeFirstResponder];
    } else if (textField == self.passwordTextField) {
        [textField resignFirstResponder];
    }

    return NO;
}
于 2012-11-07T21:38:56.620 に答える
0

参考までに、以下の2つのテキストフィールドがあります。

UITextField *email_Text;
email_Text.tag  = 100;
email_Text.delegate = self;

UITextField *password_Text;
password_Text.tag = 101;
password_Text.delegate = self;

ファイルに実装する必要がありUITextFieldDelegateます.h

現在、iamはここでテキストフィールドに割り当て方法を使用していません。テキストフィールドが自分でxibにある場合は、それを割り当てるか、アウトレットとして作成する必要があります。私は単に参照用に2つのオブジェクトを持っているだけです。また、これらのオブジェクトはクラス内でグローバルにアクセス可能である必要があります(つまり、ヘッダーで宣言する必要があります)。

textFieldShouldReturn:次のステップは、のデリゲートを実装することですUITextField

- (BOOL)textFieldShouldReturn:(UITextField *)textField {

    if(textField.tag == 100)
    {
        [password_Text becomeFirstResponder];
    }    
    else if(textField.tag == 101)
    {
        [textField resignFirstResponder];
    }
    else
    {
         ; //NOP
    }    

    return YES;
}

これを試して。

ハッピーコーディング:)

于 2012-11-08T04:12:12.397 に答える
0

あなたは一つのことを見逃しています

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if(textField == self.emailTextField) {
    [self.passwordTextField becomeFirstResponder];
     [self.emailTextField resignFirstResponder];
} else if (textField == self.passwordTextField) {
    [textField resignFirstResponder];
    [self.emailTextField becomeFirstResponder];
}

return NO;

}

于 2012-11-08T06:52:40.687 に答える