textFieldShouldReturn无效

时间:2016-05-18 19:17:50

标签: ios swift uitextfielddelegate

我有两节课。在其中一个中,返回键(用于虚拟键盘)完美地工作。在另一方面,它没有。据我所知,代码几乎完全相同。有人可以帮我弄清楚为什么我不解雇那个不起作用的人吗?

这个有效:

class ChangePasswordVC: UIViewController, UITextFieldDelegate {


    func textFieldShouldReturn(textField: UITextField) -> Bool {
        if textField == self.tempPasswordTextField {
            self.changeTempPasswordTextField.becomeFirstResponder()
        }
        else if textField == self.changeTempPasswordTextField {
            self.confirmChangeTempPasswordTextField.becomeFirstResponder()
        }
        else  {
            changePasssword()
        }

        return true
    }
}

这个不起作用:

class ResetPasswordVC: UIViewController, UITextFieldDelegate {
func textFieldShouldReturn(textField: UITextField) -> Bool {
        if textField == self.emailTextField {
            print("go button tapped")
            submitEmailForPasswordReset()
        }
        return true
    }

}

我将print语句放入其中以查看它是否会触发,但它不会向控制台打印任何内容。

2 个答案:

答案 0 :(得分:10)

您已经忘记了一些委托设置,请检查:

    self.tempPasswordTextField.delegate = self
    self.changeTempPasswordTextField.delegate = self
    self.confirmChangeTempPasswordTextField.delegate = self
    self.emailTextField.delegate = self

在您的代码中,特别检查最后一个(self.emailTextField)。

答案 1 :(得分:1)

您必须使用StoryBoard / XIB或使用代码设置UITextField委托。当UITextField委托正确分配时,它将正常工作。