Swift:编辑NSTextField时的调用函数

JFS*_*JFS 5 macos nstextfield swift

我尝试使用更改的用户输入动态更新另一个视图的文本NSTextField.以下方法不起作用,因为它是iOS.有类似的东西osx NSTextField吗?

self.equationTextField.addTarget(self, action: #selector(ViewController.textFieldDidChange(_:)), for: UIControlEvents.editingChanged)
//build error: "Use of unresolved identifier 'UIControlEvents'"
Run Code Online (Sandbox Code Playgroud)

谢谢!

Zac*_*wan 13

您将不得不使用NSControlTextEditingDelegate.delegate如果您使用的是故事板,请将NSTextField连接到ViewController.如果以编程方式创建它,只需在代码中设置它:textfield.delegate = selfinviewDidLoad()

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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)