首页 > 解决方案 > 带有文本选择的 NSAttributedString 的 NSTextField 的奇怪行为

问题描述

我看到一些奇怪的行为,其中带有属性字符串的NSTextField在设置可选项并选择了某些文本时会丢失其属性(例如,某些文本是粗体并且不再是粗体)。

设置allowsEditingTextAttributesYES似乎保留了粗体属性,但会更改颜色(从白色变为黑色)。

有简单的解决方法吗?

标签: cocoanstextfield

解决方案


BOOL allowsEditingTextAttributes

讨论
如果YES,并且文本值是属性字符串,则使用属性字符串的视觉设置显示,可以在字体面板中修改。如果标志是NO并且文本是属性字符串。字符串属性(字体、颜色等)被忽略,字符串根据文本字段的设置显示。显示字符串和编辑文本字段时,将忽略设置属性字符串的属性。

NSTextField中的文本选择由字段编辑器处理。不幸的是,字段编辑器没有考虑文本字段的字体和颜色设置。

为此,属性字符串需要包含文本字段的字体和颜色设置。


推荐阅读