Çeşitli bölümlerin farklı renkler olduğu NSSegmentedControl alt sınıfına sahip olmak isterim.NSSegmentedControl Renkler
bütün kumandayı bu durumda kırmızı aynı renk, bölümlenmiş olduğu 1. o renklerin dışında yakın görünüyor- (void)drawRect:(NSRect)dirtyRect
{
NSColor *color = [NSColor redColor];
[color setFill];
NSRectFill(dirtyRect);
[super drawRect:dirtyRect];
}
ve 2. var: Ben NSSegmentedControl sınıflara ve aşağıdaki kodu ekleyerek denedim kenarlarda biraz renk akıyor. Çeşitli kesimleri eşsiz renklerini gösterdiklerini, ancak ben pek bu kabul edilebilir dikkate alacağını
- (void)drawSegment:(NSInteger)segment inFrame:(NSRect)frame withView:(NSView *)controlView
{
NSColor *color;
switch (segment) {
case 0:
color = [NSColor redColor];
break;
case 1:
color = [NSColor blueColor];
break;
case 2:
color = [NSColor greenColor];
break;
case 3:
color = [NSColor orangeColor];
break;
default:
break;
}
[color setFill];
NSRectFill(frame);
[super drawSegment:segment inFrame:frame withView:controlView];
}
Bunun anlamı daha iyidir:
Ben de NSSegmentedCell sınıflara ve bu ekleme çalıştı. Tüm segmentin o segment için uygun renkle doldurulmasını istiyorum ve ilk ekran görüntüsünde olduğu gibi gradyan ve gölgelendirme olması güzel olurdu.Lütfen bunu nasıl başarabileceğimi bildirin.
Teşekkürler.
devre dışı bırakmak için unutma Bölünmüş kontrolün mevcut uygulamasının çiziminde saydamlık kullandığını gösteren bir şans. Bu, kontrol altına aldığınız kırmızının parlamasını sağlar. Bu, Mac OS X'te yapılan herhangi bir güncelleme ile değişebilir. Bunu doğru şekilde yapmak için, tüm çizimin drawRect içindeki kendi NSView alt sınıfını yapmalısınız: varolan denetimi renklendirmek yerine. –
Oh, Jon, muhtemelen söylediklerinizle ilgili, aslında yaklaşık yarım düzine farklı stil var. Diğer tarzların da bunu nasıl etkileyebileceğini merak ediyorum. –