2010-09-04 11 views
6

Ich kann Hintergrundfarbe für NSTextView festlegen, auch Einfügefarbe, aber wenn ich versuche, Textfarbe zu ändern, funktioniert es einfach nicht.Ändern der Textfarbe von NSTextView in Interface Builder funktioniert nicht

Ich kann die Farbe programmgesteuert vor jedem Einfügen von Text festlegen, aber ich mache wahrscheinlich etwas falsch, da Interface Builder diese Optionen bietet.

Hier ist, was mein Inspektor sieht so aus:

alt text

+0

Wenn ich meinen Text NSTextView in IB hinzufügen, dann funktioniert es gut. Die Farbe funktioniert nicht nur, wenn am Anfang kein Text vorhanden ist. – Vojto

+0

Was meinen Sie mit "Die Farbe funktioniert nicht"? –

+0

Wenn ich die Anwendung ausführen und etwas Text in die NSTextView schreiben, ist die Farbe schwarz statt grün. Wenn ich irgendeinen Text zuerst (in Interface Builder) schreibe, dann führe es aus und schreibe, es ist grün. – Vojto

Antwort

4

Hier ist, was ich habe unten versucht, und die Ergebnisse, die ich gefunden habe, was dazu führte mich zu meinem Abschluss.

  1. (a) NSTextView hinzufügen (b) Farbe ändern. Ergebnis: Funktioniert nicht enter image description here

  2. (a) In NSTextView (b) dann wird der Text (c) drücken Sie die Eingabetaste, weil es versäumt, wenn ich den Ball hielt drücken Sie die Eingabetaste (d) dann die Farbe ändern. Ergebnis: Funktioniert enter image description here

Wenn die text Eigenschaft des NSTextView nicht im Interface-Builder eingestellt ist, ist es nicht die Textfarbe Eigenschaft scheint zu speichern. Dies führt dazu, dass die App beim Start die Standardfarbe auswählt. Die anderen Eigenschaften wie Hintergrundfarbe und Einfügefarbe werden jedoch gespeichert. Dies führt zu der Annahme, dass dies ein Fehler im Interface Builder ist.

Als Abhilfe können Sie einzelne Leerzeichen in dem Textfeld und die eingestellte Ihre Farbe in Interface Builder lassen, aber dies für Sie je nach nicht günstig sein könnte, was Sie wollen mit dem NSTextView

+0

Ich kann bestätigen, dass dieses Problem scheinbar für alle Textattribute (ich wollte die Schriftart statt der Schriftfarbe ändern) bestehen bleibt. macOS 10.12.5, Xcode 9b. –

0

Was zu tun Soweit ich sehen kann - es gibt einen Fehler in appkit ab (10.10), wenn der Text nicht initialisiert wird. Dieser Hack hat mich aus der Patsche gebracht.

NSTextView *tf = 
tf.delegate = self; 

- (void)textDidChange:(NSNotification *)aNotification { 
    NSLog(@"notificaiton:%@",aNotification); 
    NSMTextView *tv = (NSMTextView *)[aNotification object]; 
    [tv setTextColor:[NSColor whiteColor]]; 
    [[tv textStorage] setFont:[NSFont systemFontOfSize:30]]; 
} 
Verwandte Themen