2010-09-04 8 views
6

Puedo establecer el color de fondo para NSTextView, también el color de inserción, pero cuando intento cambiar el color del texto, simplemente no funciona.Cambiar el color del texto de NSTextView en Interface Builder no funcionará

Puedo configurar el color mediante programación antes de cada inserción de texto, pero probablemente estoy haciendo algo mal, ya que Interface Builder ofrece estas opciones.

Aquí es lo que mi inspector se ve así:

alt text

+0

Cuando agrego texto a mi NSTextView en IB, funciona bien. El color no solo funciona cuando no hay texto al principio. – Vojto

+0

¿Qué quiere decir con "El color no funciona"? –

+0

Cuando ejecuto la aplicación y escribo texto en NSTextView, el color es negro en lugar de verde. Si escribo algún texto allí primero (en el constructor de interfaz), luego lo ejecuto y escribo, es de color verde. – Vojto

Respuesta

4

Aquí es lo que he tratado a continuación y los resultados que he encontrado que me llevó a la conclusión.

  1. (a) Agregue NSTextView (b) cambie el color. Resultado: No funciona enter image description here

  2. (a) Añadir NSTextView (b) a continuación, cambiar el texto (c) pulse enter porque falló cuando ni me presiona enter (d) a continuación, cambiar el color. Resultado: Funciona enter image description here

Si la propiedad text del NSTextView no se encuentra en la interfaz-Builder, no parece guardar la propiedad de color de texto. Por lo tanto, hace que la aplicación seleccione el color predeterminado al iniciarse. Sin embargo, se guardan las otras propiedades, como color de fondo e inserción. Esto me lleva a pensar que esto es un error en el constructor de interfaces.

Como solución alternativa, puede dejar el espacio en blanco sencillo en el cuadro de texto y el conjunto de su color en el constructor de interfaces, pero esto podría no ser favorable para usted dependiendo de lo que desee hacer con los NSTextView

+0

Puedo confirmar que este problema persiste aparentemente para todos los atributos de texto (quería cambiar la fuente, en lugar del color de la fuente). macOS 10.12.5, Xcode 9b. –

0

Como Hasta donde puedo ver, hay un error en el appkit a partir de (10.10) cuando el texto no se inicializa. Este truco me sacó de problemas.

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]]; 
} 
Cuestiones relacionadas