[英]Adding an observer to a UITextfield. never fires?
Swift 4.0 iOS 11.x
添加了一些UITextfields,成為第一個響應者,而不是這些觀察者。 但是他們似乎從來沒有開槍? 我在這里想念什么?
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var hintTextField: UITextField!
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
listenToTextFields()
}
private func listenToTextFields() {
let center = NotificationCenter.default
let queue = OperationQueue.main
namedObserver = center.addObserver(forName: NSNotification.Name.UITextViewTextDidChange, object: nameTextField, queue: queue) { (notification) in
print("You edited \(self.nameTextField.text)")
}
hintObserver = center.addObserver(forName: NSNotification.Name.UITextViewTextDidChange, object: hintTextField, queue: queue) { (notification) in
print("You edited \(self.hintTextField.text)")
}
}
當我在nameTextField或hintTextField中輸入文本時,沒有任何內容打印到控制台。 試圖使該類成為UITextFieldDelegate,並確實設置了文本字段委托,但是仍然沒有通知來嗎?
好的,通過使用其他通知使它正常工作,使它似乎可以正常工作; 但目前肯定不會這樣做。
private func listenToTextFields() {
let center = NotificationCenter.default
let queue = OperationQueue.main
let alert2Monitor = NSNotification.Name.UITextFieldTextDidEndEditing
namedObserver = center.addObserver(forName: alert2Monitor, object: nameTextField, queue: queue) { (notification) in
self.setWayPoint.didSetVariable(image: nil, name: self.nameTextField.text, hint: self.hintTextField.text)
}
hintObserver = center.addObserver(forName: alert2Monitor, object: hintTextField, queue: queue) { (notification) in
self.setWayPoint.didSetVariable(image: nil, name: self.nameTextField.text, hint: self.hintTextField.text)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.