1

我想将 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)中的字符后,生成的文本是蓝色的,然后是绿色的,但不仅仅是绿色。

我怎样才能使着色尊重新的文本片段?

4

0 回答 0