NSTextView结束编辑操作,如NSTextField

时间:2012-09-05 16:13:24

标签: cocoa nstextview

如何在NSTextView上检测结束编辑操作,就像在NSTextField上一样?我不能将其视为一项行动或其代表。

1 个答案:

答案 0 :(得分:13)

您可以注册通知,例如NSTextDidEndEditingNotification

如果要使用委托模式,则应检查NSTextDelegate协议。文档here。结束编辑时发送的方法是textDidEndEditing:

NSTextViewNSText的子类,因此最好也要检查该类的docs

实施例

NSTextView有一个NSTextViewDelegate属性,可用于通知更改。委托方法仅仅是获取“结束编辑”通知的便捷方法,与您control:textShouldEndEditing可能知道的NSTextField不同,例如。

class SomeViewController: NSViewController, NSTextViewDelegate {

    var textView: NSTextView!

    func loadView() {

        super.loadView()

        textView.delegate = self
    }

    func textDidBeginEditing(notification: NSNotification) {

        guard let editor = notification.object as? NSTextView else { return }

        // ...
    }

    func textDidEndEditing(notification: NSNotification) {

        guard let editor = notification.object as? NSTextView else { return }

        // ...
    }
}