Pregunta

Si desea implementar un resaltado de subseries específicas en un NSTextField como en la captura de pantalla (Tweetie.app) ¿cómo hacerlo? :) Tweetie Enlace Destacando http://qkpic.com/88c61

Gracias por su ayuda!

¿Fue útil?

Solución

Para un NSTextField, tenga en cuenta que se trata de un NSTextFieldCell que hace el dibujo. Usted querrá anular -drawInteriorWithFrame: inView: y hacer la cadena de dibujo sí mismo. El reto será encontrar los rectángulos (más de uno si el rango se envuelve) en el que se basa en nuestros subcadena. Usted va a terminar encima de tener que utilizar NSLayoutManager y un contenedor NSTextStorage.

Lo mejor es utilizar un NSTextView. Los componentes asociados NSLayoutManager y NSTextStorage ya están pre-ensamblados y se obtiene una gran cantidad de otras funciones de forma gratuita. Lo más importante es que hay un cómodo - [NSTextView drawViewBackgroundInRect:] método por lo que no tiene que nada subclase. Le preguntas a la vista del texto para su controlador de distribución y almacenamiento de texto, a continuación, pedir por los rectángulos para el rango dado. Ver las de texto Descripción general del sistema y vinculados documentos para más detalles.

Para encontrar las subseries interesantes de manera eficiente, es posible utilizar atributos personalizados (o las incorporadas tales como NSLinkAttributeName) para sus gamas interesantes.

Otros consejos

Una alternativa a considerar es una vista web editable donde se puede construir los atributos personalizados con CSS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top