【发布时间】:2016-04-29 12:01:50
【问题描述】:
如何检测 UITextField 何时粘贴了文本?我有两个用于起始地址和结束地址的文本字段。一旦我检测到它们的变化,我会询问用户他们是否想根据该变化来改变他们的地图路线/数据。显然,当他们在字段中输入时,我可以得到代表,但我无法弄清楚他们何时粘贴到其中(比如说他们希望开始和结束目的地相同,并且他们从一个复制到另一个)。
任何帮助将不胜感激。
【问题讨论】:
如何检测 UITextField 何时粘贴了文本?我有两个用于起始地址和结束地址的文本字段。一旦我检测到它们的变化,我会询问用户他们是否想根据该变化来改变他们的地图路线/数据。显然,当他们在字段中输入时,我可以得到代表,但我无法弄清楚他们何时粘贴到其中(比如说他们希望开始和结束目的地相同,并且他们从一个复制到另一个)。
任何帮助将不胜感激。
【问题讨论】:
我想通了。其实很简单。只需将更改事件目标添加到您的文本字段:
[textfield addTarget:(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- (void) textFieldDidChange : (UITextField*) textField {
//something spectacular happens here...
}
这很简单,为什么 Apple 不将其作为协议方法的一部分?
【讨论】:
如果有人(比如我)想要 02/22 的最新 Swift 版本:
textField.addTarget(self, action: #selector(textFieldChanged(sender:)), for: UIControl.Event.editingChanged)
@objc func textFieldChanged(sender: UITextField) {
if let textFieldText = sender.text {
// textFieldText contains the changed value
}
}
适用于用户在字段中输入和粘贴。
【讨论】: