一尘不染

resignFirstResponder与endEditing的键盘解雇

swift

在斯威夫特,双方[someTextField].resignFirstResponder()self.view.endEditing(true)完成相同的任务-
对用户隐藏的观点和任何文本字段,用它去聚焦键盘。我知道前者特定于特定字段,而后者涵盖了整个视图,但是除了希望针对特定的文本字段之外,什么时候相对于另一文本字段是首选/推荐的?


阅读 374

收藏
2020-07-07

共1个答案

一尘不染

someTextField.resignFirstResponder()

resignFirstResponder()当您确切知道哪个文本字段是第一响应者并且想辞职其第一响应者状态时,可以使用该方法。这可能比其他方法要有效一些,但是如果您要执行一些操作(例如创建自定义控件),那么这很有意义。例如,也许您有一个文本字段,并且当按下“下一步”按钮时,您想摆脱键盘并显示一个日期选择器。在这里,我肯定会用resignFirstResponder()

self.view.endEditing(true)

通常,无论出于何种原因,无论当前发生什么情况,我都绝对需要清除键盘时,通常会保留这种情况。也许,我有一个滑盖菜单?就在这一切发生之前,无论发生什么情况,键盘都应该消失,因此我将确保
一切都
退出其第一响应者状态。重要的是要注意,endEditing()它将遍历子视图的整个层次结构,并确保无论第一响应者是什么,都将退出其状态。resignFirstResponder()如果您已经有了对第一个响应者的具体引用,这会使调用它的效率降低,但是如果没有,则比找到该视图并让其辞职更容易。

2020-07-07