對於我用Xcode/Swift構建的MacOS應用程序,我試圖在NSTextField中的值發生更改(用戶正在鍵入內容)時調用函數。所以我添加了一個通知中心觀察員:將通知中心觀察者添加到特定的NSTextField中 - MacOS
import Cocoa
class ViewController: NSViewController, NSTextDelegate {
@IBOutlet weak var textField: NSTextField!
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidChange(_:)), name: Notification.Name.NSTextDidChange, object: nil)
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
func textFieldDidChange(_ notification: Notification) {
print(textField.stringValue)
}
}
這工作正常。但現在我希望它適用於特定的NSTextField,所以我設置對象的觀察者:
NotificationCenter.default.addObserver(self, selector: #selector(textFieldDidChange(_:)), name: Notification.Name.NSTextDidChange, object: textField)
現在突然不工作了,我似乎無法找出原因。剛開始使用Xcode和Swift。我一直在尋找一個解決方案的所有周末,但大多數的答案我找到適用於iOS應用程序,舊版本的快捷,Objective-C的等
https://stackoverflow.com/q/43371152/2303865 –