Estoy buscando una técnica confiable para hacer un formato de cadena simple (negrita, cursiva, ...) en un NSTextView. El análisis de texto casi está hecho con expresiones regulares, pero ahora necesito aplicar el rasgo de fuente y también cambiar el tamaño.Técnica sobre cómo formatear/colorear la cadena de NSTextView
Algunos fragmentos de código en la forma en que hago un texto en negrita
[[textView textStorage] beginEditing];
[[textView textStorage] applyFontTraits:NSFontBoldTrait range:range];
[[textView textStorage] endEditing];
esto y también los cambios de tamaño con
[[textView textStorage] beginEditing];
NSFont* font = [[textView textStorage] attribute:NSFontAttributeName atIndex:range.location effectiveRange:nil];
NSFont* newFont = [NSFont fontWithName:[font familyName]
size:[font pointSize] + size];
[[textView textStorage] addAttribute:NSFontAttributeName
value:newFont
range:range];
[[textView textStorage] endEditing];
funciona bien. El único problema que tengo ahora es que, en algunos casos, cuando escribo nuevos caracteres, esos caracteres aparecen en negrita o cursiva por defecto, aunque no les aplique las propiedades.
¿Tengo que restablecer algo con el setTypingAttributes
del NSTextView
o simplemente me pierdo algo aquí?
Necesito hacer algo similar. ¿Te importaría decir dónde invocas el código de formato? En mi caso, tengo una vista de texto que usa un enlace, por lo que podría modificarse mediante la edición o un cambio realizado por el controlador subyacente. – paulmelnikow