我有一个UITextField zipTextField并用于UIPicker更改文本。我想知道zipTextField 何时更改。
我把这个程序放在我的 ViewController
@IBAction func textFieldEditingDidChange(sender: AnyObject){
print("textField:\(zipTextField.text)")
}
Run Code Online (Sandbox Code Playgroud)
但是当zipTextField改变时函数没有调用
否则,当我连接textFieldEditingDidChange到Editing Did End或Editing Did Begin 时, 将调用textFieldEditingDidChange
小智 17
如果你已经实现了委托方法
textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String)
Run Code Online (Sandbox Code Playgroud)
并返回false,该事件不会被触发。
通常这是因为您尝试手动设置文本字段的值 ( textField.text = newValue) 以阻止用户输入。
如果是这样,您必须添加:
textField.sendActions(for: .editingChanged)
Run Code Online (Sandbox Code Playgroud)
在委托方法中返回之前false和之后textField.text = newValue。这将UIControl Event返回给您的观察者。