检查退出TextField resignedFirstReponder?

问题描述 投票:-1回答:1

能否检查一个TextField是否已经退出?

我有3个TextField,并用(resignFirstResponder)和(becomeFirstResponder)的回车键循环查看。

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

检查用户是否从一个TextField上点击离开的最好方法是什么 ? 无论是点击到下一个文本字段还是暂时离开?

swift uitextfield first-responder resignfirstresponder becomefirstresponder
1个回答
0
投票

isFirstResponder 苹果文档

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

var isFirstResponder: Bool { get }

如何使用

if txtField.isFirstResponder {
// do whatever you want to
}

如果你想在textField改变焦点时保存数据......你应该实现text field的委托方法。

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

func textFieldShouldEndEditing(_ textField: UITextField) -> Bool

在你的例子中,你可以检查哪个文本字段结束编辑。

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

Apple Docs for textFieldShouldEndEditing

© www.soinside.com 2019 - 2024. All rights reserved.