在Swift中,[someTextField].resignFirstResponder()
和self.view.endEditing(true)
都完成了相同的任务——将键盘隐藏在用户的视线之外,并对使用它的任何文本字段进行go 聚焦.我知道前者是特定于特定字段的,而后者包含整个视图,但除了想要针对特定文本字段之外,什么时候首选/推荐一个字段而不是另一个?
在Swift中,[someTextField].resignFirstResponder()
和self.view.endEditing(true)
都完成了相同的任务——将键盘隐藏在用户的视线之外,并对使用它的任何文本字段进行go 聚焦.我知道前者是特定于特定字段的,而后者包含整个视图,但除了想要针对特定文本字段之外,什么时候首选/推荐一个字段而不是另一个?
someTextField.辞职第一响应者()
当您确切知道哪个文本字段是第一响应者并且想要放弃其第一响应者状态时,可以随时使用resignFirstResponder()
.这可能比另一种方法稍微有效一些,但是如果你正在做一些事情,比如创建一个自定义控件,这是非常有意义的.例如,也许你有一个文本字段,当按下"下一步"按钮时,你想摆脱键盘,展示一个日期 Select 器.在这里,我肯定会使用resignFirstResponder()
自己看法endEditing(真实)
我通常会将其保留为无论当前发生了什么,出于任何原因,我都绝对需要清除键盘的情况.也许,我有一张幻灯片在菜单上?就在这个幻灯片出来之前,无论发生什么,键盘都应该离开,所以我会确保everything退出其第一响应者状态.需要注意的是,endEditing()
将查看子视图的整个层次 struct ,并确保第一响应者退出其状态.如果你已经对第一响应者有了具体的参考资料,那么拨打resignFirstResponder()
的效率就会降低,但如果没有,那就比找到这个观点并让它辞职要容易得多.