在 Swift 中,[someTextField].resignFirstResponder()
和 self.view.endEditing(true)
完成相同的任务 - 从用户的 View 中隐藏键盘并散焦正在使用它的任何文本字段。我了解前者特定于特定领域,而后者包含整个 View ,但除了想要针对特定文本字段之外,什么时候首选/推荐另一个?
最佳答案
someTextField.resignFirstResponder()
resignFirstResponder()
非常适合在您确切知道哪个文本字段是第一响应者并且您想放弃其第一响应者状态时使用。这可能比替代方案更有效,但如果您正在做一些事情,例如创建自定义控件,这可能很有意义。例如,也许您有一个文本字段,当按下“下一步”按钮时,您想摆脱键盘并显示一个日期选择器。在这里,我肯定会使用 resignFirstResponder()
self.view.endEditing(true)
我通常将此保留用于我绝对需要清除键盘的情况,无论当前发生了什么,无论出于何种原因。也许,我有一个滑盖菜单?就在它滑出之前,无论发生什么,键盘都应该消失,所以我会确保一切放弃其第一响应者状态。重要的是要注意 endEditing()
将查看 subview 的整个层次结构并确保第一响应者放弃其状态。如果您已经有对第一响应者的具体引用,这会降低调用 resignFirstResponder()
的效率,但如果没有,则比找到该 View 并让它辞职更容易。
关于ios - resignFirstResponder 与 endEditing 键盘关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29882775/