如何绘制的文本的特定范围的背景NSTextView
问题描述:
这不是一个特定的错误,它更多的不知道应该怎么做。如何绘制的文本的特定范围的背景NSTextView
我有一个NSTextView,我需要当用户点击文本视图的特定部分绘制文本的特定范围的背景。我试过,但我刚刚得到的,有时文本失去前景色和背景不跨越整个范围的感觉反常行为:
NSLayoutManager *layoutManager = [myTextView layoutManager];
[layoutManager removeTemporaryAttribute:NSBackgroundColorAttributeName
forCharacterRange:range];
[[myTextView layoutManager] setTemporaryAttributes:attributes
forCharacterRange:range];
为了简单起见,假设范围总是有效的字符串(它在我的测试环境中)。
答
您发布的代码看起来正确的给我。
有时文本失去前景 颜色
这是前景色,你正在使用一个临时属性?请注意,使用-setTemporaryAttributes:forCharacterRange:
集合(而不是附加到)给定范围的临时文本属性字典(请参阅-addTemporaryAttributes:forCharacterRange:
以供追加)。
或背景不跨越 整个范围
没有看到你的代码的其余部分我可以建议的唯一的事情是确保您的range
值是正确的,当这种情况发生。尝试NSLog
“荷兰国际集团它,你使用它的权利之前检查你再现了问题之后的日志。
您可能还需要确保设置背景颜色为临时属性后,你没有从该范围内的部分在你的代码移除属性的其他地方。