我正在尝试检测用户何时更改输入字段。
我创建了此功能
@objc func textFieldDidChange(_ textField: UITextField) {
let alert = UIAlertController(title: "Did you bring your towel?", message: "It's recommended you bring your towel before continuing.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Yes", style: .default, handler: nil))
alert.addAction(UIAlertAction(title: "No", style: .cancel, handler: nil))
self.present(alert, animated: true)
}
我这样添加了我的目标
passWord.addTarget(self, action: #selector(textFieldDidChange(passWord:)), for: .editingChanged)
我一直收到此错误
使用未解决的标识符'textFieldDidChange(passWord:)'
如何防止发生此错误?
答案 0 :(得分:1)
您的选择器有误...
passWord.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
请参见https://developer.apple.com/documentation/uikit/uicontrol/1618259-addtarget
答案 1 :(得分:0)
最简单的方法, 只需创建密码文本字段事件即可。
答案 2 :(得分:-1)
无需将密码文本字段传递到其中。下面简单的更改应该可以解决问题。
passWord.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
确保您设置了testfield委托,并且可以使用'textField'找出函数中哪个文本字段已更改
@objc func textFieldDidChange(_ textField: UITextField) {
let alert = UIAlertController(title: "Did you bring your towel?", message: "It's recommended you bring your towel before continuing.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Yes", style: .default, handler: nil))
alert.addAction(UIAlertAction(title: "No", style: .cancel, handler: nil))
self.present(alert, animated: true)
}