NSButton - 在禁用模式下设置文本颜色

Eri*_*pir 10 macos cocoa objective-c nsbutton

出于某种原因,当我的按钮被禁用时,文本颜色变为白色.我希望它保持黑色 - 我怎么能这样做?

小智 27

您可以子类化NSButtonCell并覆盖方法:

- (NSRect)drawTitle:(NSAttributedString *)title withFrame:(NSRect)frame inView:(NSView *)controlView
{
    if (![self isEnabled]) {
        return [super drawTitle:[self attributedTitle] withFrame:frame inView:controlView];
    }

    return [super drawTitle:title withFrame:frame inView:controlView];
}
Run Code Online (Sandbox Code Playgroud)

这样,当禁用按钮时,启用按钮时文本将具有相同的文本颜色.


Cat*_*lin 7

还看看这个

[btnInfo.cell setImageDimsWhenDisabled:NO];
Run Code Online (Sandbox Code Playgroud)

  • 不适合我,文字颜色变暗 (2认同)

Chr*_*eer -6

您可以为按钮的不同状态设置文本、图像、颜色、字体等:正常、突出显示、禁用等。

您可以在 Interface Builder 中通过使用下拉列表更改状态来完成此操作。

  • nsbutton 颜色的情况并非如此。 (5认同)