2010-07-09 15 views
9

Estoy agregando dinámicamente un NSTextField a una ventana y tengo problemas con la representación. Estoy configurando el color de fondo para que sea negro y el color del texto para que sea blanco. Ambos funcionan pero es lo que parece ser un rectángulo que es parte del texto que siempre es blanco. ¿Alguien sabe lo que podría estar haciendo mal? ¿Cómo puedo deshacerme del fondo blanco que está justo alrededor del texto? El código es el siguiente:NSTextField Problemas de color

//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]; 

Respuesta

11

He intentado tu código en Mac OS X 10.6.4.

Dentro del delegado aplicación:

- (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]; 
} 

Y este es el resultado

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

No puedo ver ninguna caja blanca.
Quizás esté usando un SO diferente.
O tal vez tiene algunas otras vistas una encima de la otra que están causando el extraño efecto del que está hablando.

+0

Gracias por la respuesta rápida Florin, tal vez algo importante, estoy agregando el NSTextField a una NSWindow creada dinámicamente que tiene un fondo negro. No estoy seguro de si eso hace una diferencia, pero debe tener en cuenta que no parece tener el mismo problema que yo. –

+0

el enlace está roto. ¿Por qué no lo has subido a SO? – SpaceDog

0

Ok,

El misterio está parcialmente resuelto. Junto con mi NSTextField, también estoy configurando NSApplicationPresentationOptions para poner la aplicación en modo Kiosk. Parece que algo con eso está causando el problema que estoy viendo. Si no configuro PresentationOptions, NSTextField se muestra exactamente como yo quiero. Voy a rastrear qué PresentationOption específico es el culpable y publicar aquí.

+0

Parece que la llamada a [NSApp setPresentationOptions:] tiene la culpa. Incluso si lo llamo configurándolo por defecto, causará que el texto tenga un fondo blanco. Hmm ..... –

2

Pruebe la configuración de la propiedad refusesFirstResponder = TRUE de su objeto NSTextField. Me he topado con el comportamiento que describiste en 10.7, en 10.6 todo funciona como se esperaba.

+0

no hace ninguna diferencia para mí en Sierra – SpaceDog

Cuestiones relacionadas