0

这不是一个特定的错误,它更多的不知道应该怎么做。如何绘制的文本的特定范围的背景NSTextView

我有一个NSTextView,我需要当用户点击文本视图的特定部分绘制文本的特定范围的背景。我试过,但我刚刚得到的,有时文本失去前景色和背景不跨越整个范围的感觉反常行为:

NSLayoutManager *layoutManager = [myTextView layoutManager]; 
[layoutManager removeTemporaryAttribute:NSBackgroundColorAttributeName 
         forCharacterRange:range]; 
[[myTextView layoutManager] setTemporaryAttributes:attributes 
           forCharacterRange:range]; 

为了简单起见,假设范围总是有效的字符串(它在我的测试环境中)。

回答

2

您发布的代码看起来正确的给我。

有时文本失去前景 颜色

这是前景色,你正在使用一个临时属性?请注意,使用-setTemporaryAttributes:forCharacterRange:集合(而不是附加到)给定范围的临时文本属性字典(请参阅-addTemporaryAttributes:forCharacterRange:以供追加)。

或背景不跨越 整个范围

没有看到你的代码的其余部分我可以建议的唯一的事情是确保您的range值是正确的,当这种情况发生。尝试NSLog“荷兰国际集团它,你使用它的权利之前检查你再现了问题之后的日志。

您可能还需要确保设置背景颜色为临时属性后,你没有从该范围内的部分在你的代码移除属性的其他地方。