2009-05-23 5 views

Antwort

0

Wie wäre es mit NSCell 's -setAttributedStringValue: Methode? Erstellen Sie einfach einen NSAttributedString, der die Farbe hat, die Sie für den Schlüssel NSForegroundColorAttributeName festlegen möchten, und Sie sollten gut gehen.

+0

Dies würde die Farbe des aktuell angezeigten Textes ändern. In der Popup-Menüliste, die beim Klicken auf die Dreiecke angezeigt wird, möchte ich eine andere Farbe und dann schwarze Strings festlegen. Ich möchte einige Werte in der Liste hervorheben. In meinem Anwendungsfall möchte ich empfohlene Werte hervorheben, die der Benutzer aus der Popup-Liste auswählen sollte. – cocoafan

1

Sie müssen die Menüelemente der Popup-Taste direkt ändern, aber es ist nicht sehr schwer. Sie sollten nicht einmal Unterklassen benötigen, Sie können alles vom Controller aus tun.

NSMenu *menu = [popUpButton menu]; 
NSMenuItem *item = [menu itemWithTag:100]; 
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor redColor], NSForegroundColorAttributeName, nil]; 
NSAttributedString *string = [[NSAttributedString alloc] initWithString:[item title] attributes:attributes]; 

[item setAttributedTitle:string]; 

Sie wollen wahrscheinlich Attribute aus dem bestehenden zugeschrieben Zeichenfolge Titel kopieren, so dass die Schriftart und Größe gleich bleiben, aber das sollte Ihnen den Einstieg.

+2

Danke für die Antwort. Leider hat eine NSComboBox kein Menü. NSPopUpButton hat ein Menü. Eigentlich verwende ich nur die NSComboBoxCell in einem NSTableView. – cocoafan

Verwandte Themen