点击“下一个”时移动到下一个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

上一篇: Moving Onto The Next UITextField When 'Next' Is Tapped

下一篇: Hide the cursor of an UITextField