2010-05-30 10 views
5

Ich habe eine NSTextField Label, die Text in ihm zugeordnet hat. Die Farbe und Größe unterscheiden sich von den Standardeinstellungen. (Der Text ist ein bisschen größer und grün) Jetzt muss ich in der Lage sein, den Text in der Beschriftung zu wählen, so dass die Hyperlinks klicken, die im attributierten Text eingebettet sind. Das funktioniert gut; Wenn Sie jedoch den Text auswählen, wird das Format des Texts wieder auf die Standardwerte zurückgesetzt (eine kleinere, schwarze Schrift).NSTextField (Label) Attributed Text: Wählen Sie

Gibt es trotzdem dieses Verhalten zu stoppen, so dass mein Styling beibehalten wird, wenn der Benutzer auf einem Label klickt (wählt Text)?

EDIT: Für den Datensatz habe ich ein anderes Etikett mit weißem Text, die Farbe nicht ändert, wenn ausgewählt, nur Größe.

Antwort

2

Okay. Nach weiteren Untersuchungen, warum die weiße Farbe "klebte" und warum das Grün nicht war, entdeckte ich, dass alle in Interface Builder eingestellten Textattribute nicht bleiben nach Auswahl.

Daher ist die Lösung, setAttributedStringValue: immer mit einem NSAttributedString aufzurufen, der Attribute aufweist, die Sie sicherstellen möchten, dass Sie während der Auswahl auf Ihrem Etikett bleiben.

+2

Danke, aber könnten Sie bitte einen kleinen Code-Schnipsel befestigen? Ich muss genau das tun --- setze einen (Cyan, nicht Grün) größeren Text auf ein Label, mit einem Hyperlink ... –

+1

Hab die Lösung nicht ganz verstanden. Ich setze Zeichenkette über 'setAttributedStringValue:' aber immer noch das Problem. – NSRover

0

Ich stieß auf das gleiche Problem. Die angenommene Antwort hat es leider nicht behoben. Mein Textstil änderte sich immer noch bei der Auswahl, obwohl ich die attributedStringValue eingestellt hatte.

Dank der Antwort in this question, konnte ich teilweise das Problem lösen durch den Aufruf:

label.allowsEditingTextAttributes = true