2010-07-09 17 views
9

Aggiungo dinamicamente un NSTextField a una finestra e sto riscontrando problemi con il rendering. Sto impostando il colore dello sfondo in nero e il colore del testo in bianco. Funzionano entrambi ma il loro è quello che sembra essere un rettangolo che fa parte del testo che è sempre bianco. Qualcuno sa cosa potrei fare di sbagliato? Come posso liberarmi dello sfondo bianco che si trova proprio attorno al testo? Il codice è il seguente:NSTextField Problemi di colore

//Create rectangle to size text field 

NSRect textFieldRect = NSMakeRect(300, 300, 300, 54); 

//Instantiate text field and set defaults 
NSTextField* textField = [[NSTextField alloc] initWithFrame:textFieldRect]; 

[textField setFont:[NSFont fontWithName:@"Arial" size:48]]; 

[textField setTextColor:[NSColor whiteColor]]; 

[textField setStringValue:@"Some Text"]; 

[textField setBackgroundColor:[NSColor blackColor]]; 

[textField setDrawsBackground:YES]; 

[textField setBordered:NO]; 

[[window contentView] addSubview:textField]; 

risposta

11

Ho provato il codice su Mac OS X 10.6.4.

All'interno il delegato applicazione:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    NSRect textFieldRect = NSMakeRect(300, 300, 300, 54); 
    NSTextField* textField = [[NSTextField alloc] initWithFrame:textFieldRect]; 
    [textField setFont:[NSFont fontWithName:@"Arial" size:48]]; 
    [textField setTextColor:[NSColor whiteColor]]; 
    [textField setStringValue:@"Some Text"]; 
    [textField setBackgroundColor:[NSColor blackColor]]; 
    [textField setDrawsBackground:YES]; 
    [textField setBordered:NO]; 
    [[window contentView] addSubview:textField]; 
} 

E questo è il risultato

alt text http://www.freeimagehosting.net/uploads/26c04b6b64.png

non riesco a vedere alcun scatola bianca.
Forse stai usando un sistema operativo diverso.
O forse hai qualche altro punto di vista l'uno sull'altro che sta causando l'effetto strano di cui stai parlando.

+0

Grazie per la rapida risposta Florin, forse qualcosa che è importante, sto aggiungendo il NSTextField a un NSWindow creato dinamicamente con uno sfondo nero. Non sono sicuro che ciò faccia la differenza, ma deve considerare che tu non sembri avere lo stesso problema che io sono. Il collegamento –

+0

è rotto. Perché non l'hai caricato in SO? – SpaceDog

0

Ok,

Il mistero è parzialmente risolto. In concomitanza con il mio NSTextField, sto anche impostando alcune NSApplicationPresentationOptions per mettere l'applicazione in modalità Kiosk. Sembra che qualcosa con quello stia causando il problema che sto vedendo. Se non imposto PresentationOptions, NSTextField viene visualizzato esattamente nel modo in cui lo desidero. Troverò in quale specifico PresentationOption è la colpa e la posta qui.

+0

Sembra che la chiamata a [NSApp setPresentationOptions:] è la colpa. Anche se lo chiamo impostandolo sul valore predefinito, il testo avrà uno sfondo bianco. Hmm ..... –

2

Provare a impostare la proprietà refusesFirstResponder = TRUE dell'oggetto NSTextField. Mi sono imbattuto in un comportamento descritto in 10.7, in 10.6 tutto funziona come previsto.

+0

non fa alcuna differenza per me su Sierra – SpaceDog

Problemi correlati