当用户按下回车键时,如何设置下一个文本字段以进行编辑?
当用户按下回车键时,如何设置下一个文本字段以进行编辑?
这个问题已经在这里有了答案:
可能是重复的问题:
我的视图中有两个文本字段,当用户按下返回键时,我希望光标从电子邮件文本字段移动到密码文本字段。如果密码文本字段是焦点,我希望键盘隐藏。这是我目前拥有的,但它不起作用...
- (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日
好的,参考以下两个文本框:
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。 我只是为了参考而仅仅有两个对象。 还有,这些对象必须在该类中全局可访问(我是说您应该在头文件中声明它们)。
下一步是实现UITextField
的textFieldShouldReturn:
代理。
- (BOOL)textFieldShouldReturn:(UITextField *)textField { if(textField.tag == 100) { [password_Text becomeFirstResponder]; } else if(textField.tag == 101) { [textField resignFirstResponder]; } else { ; //NOP } return YES; }
试试这个。
快乐编码:)
你在 textFieldDidEndEditing:
方法中的代码应该放在 textFieldShouldReturn:
方法中。
- (BOOL)textFieldShouldReturn:(UITextField *)textField { if(textField == self.emailTextField) { [self.passwordTextField becomeFirstResponder]; } else if (textField == self.passwordTextField) { [textField resignFirstResponder]; } return NO; }