当用户按下回车键时,如何设置下一个文本字段以进行编辑?

5 浏览
0 Comments

当用户按下回车键时,如何设置下一个文本字段以进行编辑?

这个问题已经在这里有了答案:

可能是重复的问题:

如何通过文本字段进行导航(下一个/完成按钮)

iOS应用程序“下一个”键无法转到下一个文本字段

我的视图中有两个文本字段,当用户按下返回键时,我希望光标从电子邮件文本字段移动到密码文本字段。如果密码文本字段是焦点,我希望键盘隐藏。这是我目前拥有的,但它不起作用...

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

我漏掉了什么?非常感谢您提前的智慧!

admin 更改状态以发布 2023年5月22日
0
0 Comments

好的,参考以下两个文本框:

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

你必须在你的.h 文件中实现UITextFieldDelegate

目前我在这里没有使用任何分配方法来处理文本框。 如果文本框在xib中,则必须自己分配它或将其设置为outlet。 我只是为了参考而仅仅有两个对象。 还有,这些对象必须在该类中全局可访问(我是说您应该在头文件中声明它们)。

下一步是实现UITextFieldtextFieldShouldReturn:代理。

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if(textField.tag == 100)
    {
        [password_Text becomeFirstResponder];
    }    
    else if(textField.tag == 101)
    {
        [textField resignFirstResponder];
    }
    else
    {
         ; //NOP
    }    
    return YES;
}

试试这个。

快乐编码:)

0
0 Comments

你在 textFieldDidEndEditing: 方法中的代码应该放在 textFieldShouldReturn: 方法中。

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

0