我想将 NSTextView_A 文本的相同颜色应用到另一个 NSTextView_B 文本,只有 NSTextView_A 的文本片段。
我使用 NSLayoutManagerDelegate 将 NSTextView_A 文本着色应用到 NSTextView_B 和
- (NSDictionary *)layoutManager:(NSLayoutManager *)layoutManager shouldUseTemporaryAttributes: (NSDictionary *)attrs forDrawingToScreen:(BOOL)toScreen atCharacterIndex:(NSUInteger)charIndex effectiveRange:(NSRangePointer)effectiveCharRange
然后我删除了 NSTextView_B 文本中的一个字符范围:
[[_sourceCodeTextView textStorage]beginEditing];
[[_sourceCodeTextView textStorage]deleteCharactersInRange: NSMakeRange(0, 253)];
[[_sourceCodeTextView textStorage]endEditing];
现在的问题是,字符被正确删除,但是在不考虑新范围的情况下应用了删除前文本的颜色。
例如: NSTextView_A 文本在 0-253 范围内是蓝色的,例如绿色后面的所有内容。在我删除 NSTextView_B 文本(0-253)中的字符后,生成的文本是蓝色的,然后是绿色的,但不仅仅是绿色。
我怎样才能使着色尊重新的文本片段?