我希望每次用户对我的NSTextView进行更改时都会触发一个函数。我让它在iOS应用程序中工作,现在我正在尝试使其在 OS X 应用程序中运行。我为我的NSTextView创建了一个插座,并编写了以下Swift代码:
import Cocoa
class ViewController: NSViewController, NSTextViewDelegate {
@IBOutlet var textViewOutlet: NSTextView!
func textViewDidChange(textView: NSTextView) {
print("Text view changed!")
}
}
我没有收到任何错误,但我的陈述没有打印。
答案 0 :(得分:4)
应该是textDidChange(通知:)。试试这样:
func textDidChange(_ notification: Notification) {
guard let textView = notification.object as? NSTextView else { return }
print(textView.string)
}
答案 1 :(得分:2)
这应该是没有委托任务的原因。
TextViewOutlet.delegate = self;
这个方法实际上就像这样。注意参数
func textDidChange(_ notification: Notification) {
}