Sto provando a creare una semplice finestra basata su NSTextView per la semplice modifica WYSIWYG. Tuttavia, desidero solo consentire alcuni tipi di formattazione (ad esempio Grassetto, Corsivo, Sottolineato e un singolo tipo di titolo ma senza colori o caratteri diversi.)Come si può intercettare l'incollatura in un NSTextView per rimuovere la formattazione non supportata?
Il problema è se io uso semplicemente NSTextView, qualcuno può creare o copiare formattato testo in un altro programma, quindi semplicemente incollarlo in quella vista e tutta quella formattazione, consentendo le cose che non sto permettendo, come font, colori, ecc.
Nel migliore dei casi, voglio escludere automaticamente qualsiasi formattazione che la mia applicazione non supporta. Nel peggiore dei casi, voglio semplicemente intercettare la pasta e cambiarla in testo normale, anche se dovevano poi riformattarla manualmente. Ma è preferibile una formattazione non valida.
Nota: Qualcosa di simile è stato chiesto qui su SO più volte, ma di solito si riferiscono al web o utilizzano JavaScript/JQuery. Mi riferisco in particolare all'utilizzo di NSTextView in un'app per Mac, quindi per favore, prima di contrassegnarlo come duplicato, assicurati che sia a questo che si riferisce l'altra domanda. Grazie.
Eviterei scherzi con il contenuto effettivo di cartone. L'utente ha copiato il testo formattato, quindi non devi distruggerlo per loro. Utilizza gli altri metodi indicati in fondo a questa risposta (-readSelectionFromPasteboard: or -readSelectionFromPasteboard: digita:). –