由於某些原因,當我的按鈕被禁用時,文本顏色變爲白色。 我希望它保持黑色 - 我該怎麼做?通過下拉菜單更改狀態正常,高亮,殘疾人等NSButton - 在禁用模式下設置文本顏色
你可以做,在Interface Builder:
由於某些原因,當我的按鈕被禁用時,文本顏色變爲白色。 我希望它保持黑色 - 我該怎麼做?通過下拉菜單更改狀態正常,高亮,殘疾人等NSButton - 在禁用模式下設置文本顏色
你可以做,在Interface Builder:
可以爲一個按鈕的不同狀態設置文本,圖像,顏色,字體等。名單。
我無法在IB中找到此選項 – 2011-06-16 12:27:58
nsbutton顏色並非如此。 – 2012-04-20 13:15:04
@ErikSapir - 既然你接受了這個答案,我想你會發現IB在哪裏。你可以和我們其他人分享嗎? – pepsi 2012-05-29 20:21:49
你也可以繼承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];
}
這樣,當按鈕被禁用,文本將有文字相同顏色被啓用按鈕時。
還檢查了該
[btnInfo.cell setImageDimsWhenDisabled:NO];
這適用於我。這是最好的答案。 – Mazyod 2013-08-13 03:29:22
不適用於我,文字顏色變暗 – 2014-11-10 23:41:18
您可以覆蓋NSButtonCell的私有方法:
- (BOOL)_textDimsWhenDisabled {
return NO;
}
- (BOOL)_shouldDrawTextWithDisabledAppearance {
return NO;
}
我填補了雷達的公共方法:rdar:// 19218619
更新爲迅捷4:
override func drawTitle(_ title: NSAttributedString, withFrame frame: NSRect, in controlView: NSView) -> NSRect {
if !self.isEnabled {
return super.drawTitle(self.attributedTitle, withFrame: frame, in: controlView)
}
return super.drawTitle(title, withFrame: frame, in: controlView)
}
這將使文本屬性與啓用按鈕時相同。
你可能已經試過button.textcolor = [UIColor blackColor];但爲了以防萬一 – Radu 2011-06-16 12:01:22