Estoy tratando de crear una ventana simple basada en NSTextView para la edición WYSIWYG simple. Sin embargo, solo quiero permitir ciertos tipos de formato (por ejemplo, negrita, cursiva, subrayado y un solo tipo de encabezado pero no colores o fuentes diferentes).¿Cómo se puede interceptar el pegado en un NSTextView para eliminar el formato no compatible?
El problema es si simplemente uso NSTextView, alguien puede crear o copiar formateado texto en otro programa, simplemente péguelo en esa vista y todo ese formato va con él, permitiendo cosas que no estoy permitiendo, como diferentes fuentes, colores, etc.
En el mejor de los casos, quiero eliminar automáticamente cualquier formato que mi aplicación no admita. En el peor de los casos, quiero simplemente interceptar el pegado y cambiarlo a texto sin formato, aunque tendrían que volver a formatearlo manualmente. Pero eso es preferible al formato no válido.
Nota: Algo similar se ha preguntado aquí en SO varias veces, pero generalmente se están refiriendo a la web o usando JavaScript/JQuery. Me refiero específicamente al uso de NSTextView en una aplicación de Mac así que, por favor, antes de simplemente marcar esto como un duplicado, asegúrese de que a eso se refiera la otra pregunta. Gracias.
yo evitaría jugar con el contenido real de cartón. El usuario copió el texto formateado, por lo que no debería destruirlo. Utilice los otros métodos mencionados al final de esta respuesta (-readSelectionFromPasteboard: o -readSelectionFromPasteboard: type:). –