如何解决在适用于macOS的Cocoa应用程序中,是否可以在选择更改期间而不是仅在更改结束时获得通知?
我想继续跟踪NSTextView的选择,但是当选择使用完改变我只许成功得到改变:
- (void)textViewDidChangeSelection:(NSNotification *)notification {
}
有没有办法持续跟踪选择变化?任何帮助是极大的赞赏。谢谢
解决方法
我通过继承NSTextView并重写以下方法成功解决了该问题:
-(void)setSelectedRanges:(NSArray<NSValue *> *)selectedRanges affinity:(NSSelectionAffinity)affinity stillSelecting:(BOOL)stillSelecting {
[super setSelectedRanges:selectedRanges affinity:affinity stillSelecting:stillSelecting];
if (stillSelecting && [self delegate] && [[self delegate] respondsToSelector:@selector(textViewDidChangeSelection:)]) {
NSNotification *note = [[NSNotification alloc] initWithName:@"TextViewSelectionIsChangingNotification" object:self userInfo:nil];
[[self delegate] textViewDidChangeSelection:note];
}
}
在我看来,这是一个很好的解决方案,它运作良好。谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。