Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 文本字段内容更改时如何执行代码?_Swift_Macos - Fatal编程技术网

Swift 文本字段内容更改时如何执行代码?

Swift 文本字段内容更改时如何执行代码?,swift,macos,Swift,Macos,我试图解决这个问题已经有一段时间了,但我不知所措 使用Xcode 8.3和Swift 3(我正在为mac改编一个应用程序),我有一个名为ServiceName的文本字段,我想在这个文本字段的内容发生变化时执行一些代码。我记得这比过去可以在interface builder中完成,但看起来已经不可能了,我不知道如何在代码中完成。我是swift的新手,我不太了解代理是如何工作的,所以如果需要,请您详细解释一下 多谢各位 在Interface Builder中,将文本字段的委托连接到目标类 在目标类

我试图解决这个问题已经有一段时间了,但我不知所措

使用Xcode 8.3和Swift 3(我正在为mac改编一个应用程序),我有一个名为ServiceName的文本字段,我想在这个文本字段的内容发生变化时执行一些代码。我记得这比过去可以在interface builder中完成,但看起来已经不可能了,我不知道如何在代码中完成。我是swift的新手,我不太了解代理是如何工作的,所以如果需要,请您详细解释一下

多谢各位

  • 在Interface Builder中,将文本字段的委托连接到目标类
  • 在目标类中,采用协议
    NSTextFieldDelegate
  • 例如,在目标类override
    controlTextDidChange

    override func controlTextDidChange(_ notification: Notification) {
    
        if let textField = notification.object as? NSTextField {
            let string = textField.stringValue
            // do something with the text
    
        } else {
           super.controlTextDidChange(notification)
        }
    }
    

您想要实现什么?我想在用户在文本字段中写入数据时更新标签非常感谢您的回答!我真的很抱歉:/,我不明白目标类是什么。请说得更具体一点好吗?目标类是要监视文本字段更改的类。是viewController吗?如果要在视图控制器中进行监视,请说是。我当前正在viwController中将textField用作操作,但这仅在按下enter键时触发