作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这不是一个特定的错误,更多的是不知道如何做某事。
我有一个 NSTextView,当用户单击 TextView 的特定部分时,我需要绘制特定文本范围的背景。我已经尝试过这个,但我只是得到了不稳定的行为,因为有时文本会丢失前景色或背景不跨越整个范围:
NSLayoutManager *layoutManager = [myTextView layoutManager];
[layoutManager removeTemporaryAttribute:NSBackgroundColorAttributeName
forCharacterRange:range];
[[myTextView layoutManager] setTemporaryAttributes:attributes
forCharacterRange:range];
为了简单起见,假设 range 始终是一个有效的字符串(它在我的测试环境中)。
最佳答案
您发布的代码对我来说看起来是正确的。
sometimes text loses the foreground color
您使用的前景色是临时属性吗?请注意,使用 -setTemporaryAttributes:forCharacterRange:
设置(而不是附加到)给定范围的临时文本属性字典(请参阅 -addTemporaryAttributes:forCharacterRange:
用于附加)。
or the background doesn't span the whole range
在没有看到代码的其余部分的情况下,我唯一可以建议的是确保发生这种情况时您的 range
值是正确的。尝试在使用前使用 NSLog 进行处理,并在重现问题后立即检查日志。
您可能还想确保在将背景颜色设置为临时属性后,您不会从代码中其他位置的该范围的一部分中删除该属性。
关于objective-c - 如何在 NSTextView 中绘制特定范围文本的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2814203/
我是一名优秀的程序员,十分优秀!