我尝试使用不断变化的 NSTextField
用户输入来动态更新另一个 View 的文本。以下方法不起作用,因为它适用于 iOS
。 osx
NSTextField
是否有类似的东西可用?
self.equationTextField.addTarget(self, action: #selector(ViewController.textFieldDidChange(_:)), for: UIControlEvents.editingChanged)
//build error: "Use of unresolved identifier 'UIControlEvents'"
谢谢!
最佳答案
您将不得不使用 NSControlTextEditingDelegate。如果您使用 Storyboard,请将 NSTextField delegate
连接到您的 ViewController。如果您以编程方式创建它,只需在代码中设置它,如下所示:viewDidLoad()
textfield.delegate = self
在 NSControlTextEditingDelegate
中有一个 controlTextDidChange
,您可以利用它在编辑文本时获得通知。
extension ViewController: NSControlTextEditingDelegate {
override func controlTextDidChange(_ notification: Notification) {
if let textField = notification.object as? NSTextField {
print(textField.stringValue)
//do what you need here
}
}
}
关于Swift:编辑 NSTextField 时调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41533398/