检查是否退出TextField resignedFirstReponder?

时间:2020-04-30 18:52:50

标签: swift uitextfield first-responder resignfirstresponder becomefirstresponder

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

我有3个TextField,并使用带有(resignFirstResponder)和(becomeFirstResponder)的返回键在它们之间循环

但是有没有一种方法可以检查某个字段是否已辞职?我注意到我的一些应用测试人员没有使用回车键,而是在字段上手动单击,因此我的上一个字段不会按应有的方式保存数据。

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

1 个答案:

答案 0 :(得分:-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