当我将按钮设置为禁用时,文本变为灰色(之前为黑色)。 在我的窗口中,结果是禁用按钮时文本不可读。
我在NSButton / NSButtonCell / NSCell / NSControl的文档中查看过,但我没有找到任何方法将文本保持黑色。你知道我怎么做吗?
答案 0 :(得分:0)
您可以在IB中为每个州设置按钮属性(字体,颜色)。那么将禁用状态的文本颜色设置为黑色帮助吗?
答案 1 :(得分:0)
子类NSButtonCell并将其分配给IB中的按钮CELL(不是BUTTON直接 - >更深一级)。在子类中,根据需要实现以下和修改大小,字体和颜色:
- (NSAttributedString*)attributedTitleForString:(NSString*)string
{
// Colors
NSColor *disabledColor = [NSColor grayColor];
NSColor *enabledColor = [NSColor redColor];
// Font
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
[style setAlignment:NSLeftTextAlignment];
NSFont *font = [NSFont systemFontOfSize:11];
// Enabled
NSDictionary *enabledAttrsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
enabledColor, NSForegroundColorAttributeName,
style, NSParagraphStyleAttributeName,
font, NSFontAttributeName,
nil];
NSAttributedString* enabledTitle = [[NSAttributedString alloc]initWithString:string attributes:enabledAttrsDictionary];
// Disabled
NSDictionary *disabledAttrsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
disabledColor, NSForegroundColorAttributeName,
style, NSParagraphStyleAttributeName,
font, NSFontAttributeName, nil];
NSAttributedString* disabledTitle = [[NSAttributedString alloc]initWithString:string attributes:disabledAttrsDictionary];
if (![self isEnabled])
return disabledTitle;
else
return enabledTitle;
}
编辑:仅当setWantsLayers为false时才有效
答案 2 :(得分:-1)
在cocoa touch上有一个API:
[myButton setTextColor:[UIColor blackColor] forState:UIControlStateDisabled];
对于可可我不知道。