2011-06-16 14 views

cevap

-3

Sen bir düğmeye farklı statü için metin, vb görüntü, renkler, yazı tipleri, ayarlayabilirsiniz: Normal, vurgulanan, engelliler vb

Sen Interface Builder bunu yapabilir açılan devleti değiştirerek liste.

+0

durumunda bu seçeneği IB –

+4

'da bulamıyorum nsdüğmesi renkleri için geçerli değil. –

+0

@ErikSapir - Bu cevabı kabul ettiğinize göre, bunun IB'de nerede olduğunu buldunuz. Geri kalanımızla paylaşabilir misiniz? – pepsi

24

Sen NSButtonCell alt sınıfı ve bir yöntemi geçersiz kılabilirsiniz: düğme etkinken Bu şekilde

- (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]; 
} 

, düğme devre dışı bırakıldığında, metin metnin aynı renge sahip olacaktır. Ayrıca

+0

Bu en iyi çözüm gibi görünüyor. – jrc

+0

Teşekkür ederiz! Bu iyi çalışıyor! – Tommy

7

bu

[btnInfo.cell setImageDimsWhenDisabled:NO]; 
+0

Bu benim için çalışıyor. Bu gerçek en iyi cevaptır. – Mazyod

+2

benimle çalışmıyor, metin rengi kararıyor –

2

Sen NSButtonCell özel bir yöntemi geçersiz kılabilirsiniz check out: Bir kamu yöntem için bir radar dolu

- (BOOL)_textDimsWhenDisabled { 
    return NO; 
} 

- (BOOL)_shouldDrawTextWithDisabledAppearance { 
    return NO; 
} 

: rdar: // 19218619

0

Güncelleştirme 4:

güncelleştirmesi
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) 
    } 

Bu, metin özelliklerinin düğme etkinleştirildiğinde olduğu gibi aynı yapacaktır.

İlgili konular