禁用NSTextField而不更改多色文本的颜色

时间:2014-05-02 14:00:22

标签: objective-c nstextfield disabled-control text-coloring

每当我禁用NSTextField时,文本会丢失其颜色并变为灰色。如何禁用文本字段并保留文本颜色?在我的特殊情况下,有些单词是红色的。当我禁用时,我希望这些话保持红色。

2 个答案:

答案 0 :(得分:2)

你需要继承NSTextField来做到这一点。见CocoaBuilder thread

- (void)setEnabled:(BOOL)flag
{
    [super setEnabled:flag];

    if (!flag) {
        [self setTextColor:[NSColor secondarySelectedControlColor]];
    } else {
        [self setTextColor:[NSColor controlTextColor]];
    }
}

答案 1 :(得分:0)

我发现在编辑文本时我可以设置颜色和所有内容,但即使我没有禁用文本框,也会出现文本丢失颜色的问题。我忽略了允许我的NSTextField允许富文本。现在,即使我setEditable:NO也会保留所有颜色。