2010-09-04 4 views
6

Posso impostare il colore di sfondo per NSTextView, anche il colore di inserimento, ma quando provo a cambiare il colore del testo non funziona.Il colore del testo di NSTextView in Interface Builder non funzionerà

Posso impostare il colore a livello di programmazione prima di ogni inserimento di testo, ma probabilmente sto facendo qualcosa di sbagliato, poiché Interface Builder offre queste opzioni.

Ecco ciò che il mio ispettore assomiglia:

alt text

+0

Quando aggiungo del testo al mio NSTextView in IB, quindi funziona correttamente. Il colore non funziona solo quando non c'è testo all'inizio. – Vojto

+0

Cosa intendi con "Il colore non funziona"? –

+0

Quando eseguo l'applicazione e scrivo del testo in NSTextView, il colore è nero anziché verde. Se scrivo prima un testo (nel generatore di interfacce), eseguirlo e scrivere, è verde. – Vojto

risposta

4

Ecco quello che ho cercato qui di seguito ed i risultati che ho trovato che mi ha portato alla mia conclusione.

  1. (a) Aggiungi NSTextView (b) cambia colore. Risultato: Non funziona enter image description here

  2. (a) Aggiungi NSTextView (b) quindi modificare il testo (c) premere invio perché non è riuscito quando non ha ancora mi premere invio (d) quindi modificare il colore. Risultato: Opere enter image description here

Se la proprietà del NSTextView text non è impostato in Interface Builder, che non sembra per salvare la proprietà colore del testo. Di conseguenza, l'app seleziona il colore predefinito al momento del lancio. Le altre proprietà come Colore sfondo e Colore inserimento, tuttavia, vengono salvate. Questo mi porta a pensare che questo sia un bug nel builder dell'interfaccia.

Per risolvere il problema, è possibile lasciare spazio vuoto singolo nella casella di testo e il set il colore in Interface Builder, ma questo potrebbe non essere favorevole per voi a seconda di cosa si desidera fare con i NSTextView

+0

Posso confermare che questo problema persiste apparentemente per tutti gli attributi di testo (volevo cambiare il carattere, piuttosto che il colore del carattere). macOS 10.12.5, Xcode 9b. –

0

Come per quanto posso vedere - c'è un bug in appkit a partire da (10.10) quando il testo non è inizializzato. Questo ha tirato fuori dai guai.

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]]; 
} 
Problemi correlati