iOS隐藏键盘按“返回”按,resignFirstResponder vs endEditing

时间:2016-05-05 22:34:53

标签: ios uitextfield

当您按“返回”时,我正在搜索隐藏iOS键盘,大约一半的答案是使用self.view.endEditing(true)而另一半textField.resignFirstResponder()。一个人比另一个更好吗?

如需参考或来自Google或其他任何人,您需要将UITextFieldDelegate添加到您的类继承中,在viewDidLoad()中添加self.<your_TF_var_name>.delegate = self,然后创建一个函数

func textFieldShouldReturn(textField: UITextField) -> Bool {
    self.view.endEditing(true)
    return false
//OR
     textField.resignFirstResponder()
     return true

1 个答案:

答案 0 :(得分:2)

在这种情况下,使用textField.resignFirstResponder()并不是真正重要的,因为您已经知道这是您需要辞职的文本字段。

self.view.endEditing(true)的调用必须弄清楚当前的第一响应者是什么,然后在其上调用resignFirstResponder

我的一般经验法则是,如果您引用了想要辞职的特定视图,请使用resignFirstResponder。如果不这样做,请使用endEditing并且您只想让当前的第一响应者辞职。

另外,在任何一种情况下,您都应该从false返回textFieldShouldReturn。有一个边缘情况,在true辞职后,返回UITextView可能会导致新行被添加到UITextField。因此,作为规则,我总是返回false