此代码位于NSWindowController的子类中:
@objc func textViewDidChangeSelection(_ notification: Notification) {
// Show the previous (not current) selection range
if let stuff = notification.userInfo {
var i = 0
for (key, value) in stuff {
print("\(i) key=\(key) value=\(value)")
i += 1
}
}
}
override func windowWillLoad() {
NotificationCenter.default.addObserver(self,
selector: #selector(self.textViewDidChangeSelection(_:)),
name: NSTextView.didChangeSelectionNotification,
object: nil)
}
通知中两个字典条目的值提供与先前文本选择对应的范围。如何在发出通知时知道当前文本选择?
答案 0 :(得分:0)
文本视图(NSTextView
)是通知的对象。文本字段是文本视图的委托。
答案 1 :(得分:0)
如果“notes”是NSTextField,那么这将给出当前选定的范围:
if let sr = notes.currentEditor()?.selectedRange {
Swift.print("sr = \(sr.location) \(sr.length)")
}
很难通过现有文档发现这一点。