2010-05-30 19 views
5

Tengo una etiqueta NSTextField que tiene texto atribuido. El color y el tamaño son diferentes de los valores predeterminados. (El texto es un poco más grande y verde) Ahora, necesito poder seleccionar el texto en la etiqueta para que haga clic en los hipervínculos incrustados en el texto atribuido. Esto funciona bien; sin embargo, al seleccionar el texto, el formato del texto vuelve a los valores predeterminados (una fuente negra más pequeña).NSTextField (Etiqueta) Texto atribuido: Seleccionar

¿Hay alguna manera de detener este comportamiento para que mi estilo se preserve cuando el usuario hace clic (selecciona texto) en una etiqueta?

EDITAR: Para el registro, tengo otra etiqueta con texto blanco que no cambia de color cuando se selecciona, solo tamaño.

Respuesta

2

Bien. Después de seguir investigando por qué el color blanco se estaba "pegando" y por qué el verde no, descubrí que los atributos de texto configurados en Interface Builder hacen no quedan después de la selección.

Por lo tanto, la solución es llamar siempre al setAttributedStringValue: con un NSAttributedString que tenga los atributos que desea asegurarse de permanecer durante la selección en su etiqueta.

+2

Gracias, pero podría por favor adjuntar un pequeño fragmento de código? Necesito hacer exactamente eso --- poner un texto (cian, no verde) más grande en una etiqueta, con un hipervínculo ... –

+1

No entendí la solución. Estoy configurando cadena a través de 'setAttributedStringValue:' pero todavía tengo que enfrentar el problema. – NSRover

0

Me encontré con el mismo problema. La respuesta aceptada no la solucionó, lamentablemente. Mi estilo de texto aún cambiaba cuando se seleccionaba aunque había configurado el attributedStringValue.

Gracias a la respuesta in this question, yo era capaz de, en parte, a resolver el problema llamando a:

label.allowsEditingTextAttributes = true

Cuestiones relacionadas