问题描述
我想继续跟踪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];
}
}
在我看来,这是一个很好的解决方案,它运作良好。谢谢。