我有两节课。在其中一个中,返回键(用于虚拟键盘)完美地工作。在另一方面,它没有。据我所知,代码几乎完全相同。有人可以帮我弄清楚为什么我不解雇那个不起作用的人吗?
这个有效:
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语句放入其中以查看它是否会触发,但它不会向控制台打印任何内容。
答案 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委托正确分配时,它将正常工作。