Swift:编辑 NSTextField 时调用函数

标签 swift macos nstextfield

我尝试使用不断变化的 NSTextField 用户输入来动态更新另一个 View 的文本。以下方法不起作用,因为它适用于 iOSosx 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/

相关文章:

swift - SceneKit - 由 childNode 查找导致的无限内存增长

swift - 如何在swift中的for循环中使用异步任务

macos - 我可以快速进行SSH身份验证闪电吗?

python - 使用 python 在 Mac 上监视全局键盘输入

ios - Xcode中字体大小和标签大小的关系

swift - Firebase 创建用户 swift 不起作用

arrays - 如何在 NSUserDefault swift 中保存/检索嵌套字典?

python - 通过 brew 的 Mac OSX pip3 问题

macos - 在 Swift 中将点击处理程序添加到 NSTextField

cocoa - 如何更改行选择时的 NSTextField 文本颜色?