Cómo implementar un NSTextView que realiza el marcado sobre la marcha de las conversiones RTF

StackOverflow https://stackoverflow.com/questions/1860485

  •  13-09-2019
  •  | 
  •  

Pregunta

Estoy tratando de construir un NSTextView que puede tomar "marcado" de entrada que se traduce automáticamente en texto hermoso de estilo RTF, mientras que los tipos de usuario.

La idea es permitir que el usuario introduzca texto en formato "texto plano", sino para "embellecer" en el acto, por ejemplo.

H1 A quick list:
* first item
* second item

se traduciría en una primera línea con una fuente de cabeza, seguido de una lista con viñetas.

He encontrado un montón de maneras posibles de hacer esto, pero el sistema de texto es muy complicada (con razón) y no quiero empezar a "cocinar mi propia" si ya hay algo adecuado incorporado. Por cierto yo sería feliz con una única API de Snow Leopard.

Lo primero que pensé fue "detectores datos ", pero no puedo encontrar una API pública para hacer esto.

Después de haber llegado al final de la carretera con eso, di vuelta a la nueva " Fuentes de entrada de texto API ". Esto hace todo tipo de cosas, pero la sección "métodos de entrada basadas en datos" de la presentación de la WWDC 2006 "hacerse cargo de la introducción de texto" parece interesante en mi contexto. Más allá de eso sola presentación de diapositivas sin embargo nada parece existir en cualquier lugar, así que es un poco de un callejón sin salida de nuevo.

Por último, tuve un vistazo a la NSSpellChecker clase que también se supone que ofrecen características de terminación y correcciones automáticas .. pero no estoy seguro de cómo esto podría ser re-utilizados para mis necesidades, ya sea .

Por el momento, estoy tentado a volver a analizar todo el NSTextStorage manualmente y hacer los cambios a mí mismo cuando el usuario deja de escribir .. pero estoy seguro de que hay cabezas más inteligentes alrededor de este foro ..

Cualquier consejo o punteros en la dirección correcta serían muy apreciados.

¿Fue útil?

Solución

Ni los detectores de datos ni el corrector ortográfico son apropiados para esta tarea. Suponiendo que sólo estás buscando una manera de pasar la entrada a un analizador / formateador que ya tiene, la interfaz con el sistema de texto no es demasiado difícil. Usted está en el camino correcto con el manejo de la edición para NSTextStorage.

A lo largo de esas líneas, no hay necesidad de volver a analizar toda la cosa cuando el usuario se detiene. El sistema de texto que envía el intervalo modificado y le da la oportunidad de actuar en esos cambios (e incluso rechazarlas de plano). Dado que todos los cambios a través de este embudo (escribir, pegar, cayendo ...), este es el punto en el que desea interceder.

Debido a que usted está tratando con títulos y listas con viñetas, me gustaría obtener la envolvente párrafo de la gama modificado. Esto le da una unidad agradable, ronda de trabajo que se descubre fácilmente y se adapta perfectamente a lo que estamos tratando de lograr.

Buena suerte!

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