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