我正在尝试编写一个具有观察 UITextField 对象上的文本更改的方法的类。
在 ViewController 中,以下代码按预期工作:
class ViewController: UIViewController {
@IBOutlet weak var password: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
textField.addTarget(view, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
}
@objc func textFieldDidChange(_ textField: UITextField) {
print(textField.text!)
}
}
所以我写了一个类并将方法放入其中,如下所示:
internal class ListenerModule: NSObject, UITextFieldDelegate {
internal func textWatcher(textField: UITextField!, view: UIViewController!) {
textField.delegate = self
textField.addTarget(self, action: #selector(self.textFieldDidChange(_:)), for: .editingChanged)
}
@objc internal func textFieldDidChange(_ textField: UITextField) {
print(textField.text!)
}
}
//And in ViewController,
...
ListenerModule().textWatcher(textField: password, view: self)
...
但它不起作用。
如何将目标添加到类或库中的 TextField?