点击“下一个”时移动到下一个UITextField
我有一个iPad应用程序,里面有注册表单。 该表格非常基本,只包含两个用于名称和电子邮件地址的UITextFields。
第一个TextField用于候选人姓名,当他们输入姓名并按键盘上的'下一步'时,我希望它自动移动到下一个电子邮件地址文本字段进行编辑。
任何想法如何设置下一个按钮的键盘跳转到下一个键盘?
谢谢
您需要使您的视图控制器成为UITextField委托,并实现UITextField委托方法:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if (textField == nameField) {
[textField resignFirstResponder];
[emailField becomeFirstResponder];
} else if (textField == emailField) {
// here you can define what happens
// when user presses return on the email field
}
return YES;
}
Swift版本:
func textFieldShouldReturn(textField: UITextField) -> Bool {
if textField == nameField {
textField.resignFirstResponder()
emailField.becomeFirstResponder()
} else if textField == emailField {
// here you can define what happens
// when user presses return on the email field
}
return true
}
您可能还想滚动您的视图以使emailField可见。 如果你的视图控制器是UITableViewController的一个实例,这应该会自动发生。 如果没有,你应该阅读这个苹果文档,特别是移动位于键盘部分的内容。
此外,以@lawicko的答案,我经常改变按钮上的文字以得到最后的点睛之笔(例如说, next
当有更多的领域,然后done
的时候就上):
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
BOOL isLastTextField = //.. your logic to figure out if the current text field is the last
if (isLastTextField) {
textField.returnKeyType = UIReturnKeyDone;
} else {
textField.returnKeyType = UIReturnKeyNext;
}
}
Swift版本的正确答案。
根据我的经验,当切换textField时,您不需要resignFirstResponder。
在这个例子中,它只是您的基本用户名和密码textFields。
用户名故事板中的键盘“返回键”设置为“下一步”,密码设置为“完成”。
然后,只需连接这两个文本字段的代表并添加此扩展名即可完成。
extension LoginViewController: UITextFieldDelegate {
func textFieldShouldReturn(textField: UITextField) -> Bool {
if textField == textFieldPassword {
self.view.endEditing(true)
} else {
textFieldPassword.becomeFirstResponder()
}
return true
}
}
链接地址: http://www.djcxy.com/p/73501.html