NSTextView结束编辑操作,如NSTextField



如何在NSTextView上检测结束编辑操作,就像在NSTextField上一样?我看不出这是一个行动,也看不出它的代表性。

您可以注册通知,例如NSTextDidEndEditingNotification

如果要使用委托模式,则应检查NSTextDelegate协议。此处提供文档。端部编辑发送的方法是textDidEndEditing:

NSTextViewNSText的一个子类,因此检查该类的文档也是一个好主意。

示例

NSTextView有一个NSTextViewDelegate属性,您可以使用它来获得有关更改的通知。委托方法只是获得"结束编辑"通知的方便方法,例如,与NSTextField中的control:textShouldEndEditing不同。

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 }
        // ...
    }
}

最新更新