gpt4 book ai didi

objective-c - 如何在 NSTextView 中绘制特定范围文本的背景

转载 作者:行者123 更新时间:2023-12-03 17:44:56 26 4
gpt4 key购买 nike

这不是一个特定的错误,更多的是不知道如何做某事。

我有一个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com