检查现有的 TextField resignFirstResponder?

Posted

技术标签:

【中文标题】检查现有的 TextField resignFirstResponder?【英文标题】:Check for exiting TextField resignedFirstReponder? 【发布时间】:2020-04-30 18:52:50 【问题描述】:

是否可以检查 TextField 是否已被辞退?

我有 3 个文本字段,并使用 (resignFirstResponder) 和 (becomeFirstResponder) 的返回键循环浏览它们

但是有没有办法检查一个字段是否已经辞职?我注意到我的一些应用程序测试人员不使用返回键而是手动单击字段,这样我之前的字段就不会按应有的方式保存数据。

检查用户是否点击离开 TextField 的最佳方法是什么?是进入下一个文本字段还是暂时离开?

【问题讨论】:

【参考方案1】:

isFirstResponder Apple Docs

返回一个布尔值,指示此对象是否是第一响应者。

var isFirstResponder: Bool  get 

如何使用

if txtField.isFirstResponder 
// do whatever you want to

如果你想在textField改变焦点时保存数据..你应该实现文本字段的委托方法

在辞去第一响应者之前,文本字段会调用它的 委托的 textFieldShouldEndEditing(_:) 方法。使用该方法 验证当前文本。

func textFieldShouldEndEditing(_ textField: UITextField) -> Bool

在你的情况下,你可以检查哪个 texfield 结束编辑

func textFieldShouldEndEditing(_ textField: UITextField) -> Bool 
   if textField == textfield1 
     // save 
   

Apple Docs for textFieldShouldEndEditing

【讨论】:

我正在寻找辞职的第一响应者?每当一个字段不再是第一响应者时。 是否可以检查 TextField 是否已被辞职...检查字段是否是第一响应者 ....

以上是关于检查现有的 TextField resignFirstResponder?的主要内容,如果未能解决你的问题,请参考以下文章

如何停止现有的调度队列并开始新的?

在 Spring Security 中检查现有的 HttpSession

Swift - 如何检查现有的 Core Data Store iOS

如何检查 HttpContext.Current.Response 是不是有现有的 Header?

如何根据现有的 mongoose 查询检查单个文档?

是否可以检查两个现有的 GL 上下文是否共享资源?