如何获取 NSTextView 插入符位置更改的回调?
我尝试过 KVO
[textView addObserver:self forKeyPath:@"selectedRange" options:NSKeyValueObservingOptionNew context:NULL];
但是当我使用箭头键或鼠标移动时,我没有得到回调...可能是因为范围是一个结构,它会修改其成员(当文本更改时我只得到回调)
但是如何监控插入符位置变化?
最佳答案
Swift 4 版本:
public func textViewDidChangeSelection(_ notification: Notification) {
guard let textView = notification.object as? NSTextView,
let string = textView.textStorage?.string else {
return
}
if let nsRange = textView.selectedRanges.first as? NSRange,
let range = Range(nsRange, in: string) {
print(nsRange)
print(range.lowerBound.encodedOffset, range.upperBound.encodedOffset)
}
}
关于macos - NSTextView 监听插入符位置变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31985868/