在NSTextViewDelegate和textViewDidChange不起作用的情况下侦听对NSTextView的更改

use*_*824 1 cocoa nstextview swift

我希望用户每次对我的NSTextView进行更改时都触发一个函数。我让它可以在iOS应用程序中工作,现在正尝试使其在OS X应用程序中工作。我为NSTextView创建了一个出口,并编写了以下Swift代码:

import Cocoa

class ViewController: NSViewController, NSTextViewDelegate {

    @IBOutlet var textViewOutlet: NSTextView!

    func textViewDidChange(textView: NSTextView) {
        print("Text view changed!")
    }
}
Run Code Online (Sandbox Code Playgroud)

我没有任何错误,但我的声明没有打印。

Leo*_*bus 7

它应该是textDidChange(notification :)。尝试这样:

func textDidChange(_ notification: Notification) {
    guard let textView = notification.object as? NSTextView else { return }
    print(textView.string)
}
Run Code Online (Sandbox Code Playgroud)