在Swift中,[someTextField].resignFirstResponder()self.view.endEditing(true)都完成了相同的任务——将键盘隐藏在用户的视线之外,并对使用它的任何文本字段进行go 聚焦.我知道前者是特定于特定字段的,而后者包含整个视图,但除了想要针对特定文本字段之外,什么时候首选/推荐一个字段而不是另一个?

推荐答案

someTextField.辞职第一响应者()

当您确切知道哪个文本字段是第一响应者并且想要放弃其第一响应者状态时,可以随时使用resignFirstResponder().这可能比另一种方法稍微有效一些,但是如果你正在做一些事情,比如创建一个自定义控件,这是非常有意义的.例如,也许你有一个文本字段,当按下"下一步"按钮时,你想摆脱键盘,展示一个日期 Select 器.在这里,我肯定会使用resignFirstResponder()

自己看法endEditing(真实)

我通常会将其保留为无论当前发生了什么,出于任何原因,我都绝对需要清除键盘的情况.也许,我有一张幻灯片在菜单上?就在这个幻灯片出来之前,无论发生什么,键盘都应该离开,所以我会确保everything退出其第一响应者状态.需要注意的是,endEditing()将查看子视图的整个层次 struct ,并确保第一响应者退出其状态.如果你已经对第一响应者有了具体的参考资料,那么拨打resignFirstResponder()的效率就会降低,但如果没有,那就比找到这个观点并让它辞职要容易得多.

Swift相关问答推荐

结束手势不会在滚动视图中触发

启用完成并发判断以及如何解决警告(续)

如何返回JSON数据?

更改正在进行的异步任务的完成(SWIFT并发)(&q;)?

通过SwiftUI中的列表 Select 从字典中检索值

按SWIFT中每个ID的最大值进行筛选/排序

SwiftUI同心圆,通过逐渐出现来显示进度

如何强制创建新的UIViewControllerRenatable|更新Make UIViewController上的视图

Observable.create 捕获行为

ClosedRange.Swift 中 Int 的索引?

计算 CoreData 中所有唯一对象的数量?

减小SF符号的边框宽度

使用 WrappingHStack 文本溢出到新行

为什么 id 不能通过 struct 从 Objective-C 移植到 Swift?

关联满足约束时的快速协议方法

使用列表的下一项更新相同的视图

带有屏幕参数的 NSWindow 初始化程序在初始化时导致致命错误

Alamofire 会自动存储 cookie 吗?

如果没有标记,则为 Swift 预处理器

如何在 SwiftUI 中创建带有图像的按钮?