如何在NSTextView上检测结束编辑操作,就像在NSTextField上一样?我不能将其视为一项行动或其代表。
答案 0 :(得分:13)
您可以注册通知,例如NSTextDidEndEditingNotification
。
如果要使用委托模式,则应检查NSTextDelegate
协议。文档here。结束编辑时发送的方法是textDidEndEditing:
。
NSTextView
是NSText
的子类,因此最好也要检查该类的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 }
// ...
}
}