Wenn ich Text in eine NSTextView einfüge, möchte ich nur reinen Text einfügen. Alle Rich-Text-Formate sollten entfernt werden, einschließlich: Schriftart, Farbe, Link und Absatzformat. Der gesamte eingefügte Text sollte mit der Standardschriftart und -stile der Textansicht angezeigt werden. NSTextView akzeptiert standardmäßig Rich Text, wie kann ich es deaktivieren?
Definieren Sie eine benutzerdefinierte NSTextView
-Klasse mit folgender Methode:
Hinweis : Ab Mac OS X wird der neue typedef
für den Typ Pasteboard als NSPasteboardTypeString
anstelle von NSStringPBoardType
:
Die obigen Lösungen lösen das Fragezeichen des eingefügten Textes, aber ich denke, dass der Fragesteller wahrscheinlich mehr wollte. Zumindest als ich hierher kam.
Ich möchte einfach, dass alle Zeichen in meinem Textfeld immer die gleiche Schriftart haben , unabhängig davon, ob sie programmatisch von der Spitze eingefügt, eingefügt, eingezogen, eingetippt oder gelöscht werden von Santa Claus. Ich habe Stack Overflow für dieses umfassendere Problem durchsucht, aber keine Fragen (oder Antworten) gefunden.
Anstelle der hier angegebenen Lösungen verwenden Sie Idee . Im Detail geben Sie dem Textfeld einen Delegaten, der dies implementiert ...
%Vor%Fertig. Dies funktioniert für alle Randfälle, an die ich denken könnte. Es ist ein bisschen komisch, eine Änderung in der Auswahl zu beobachten. Es scheint logischer zu sein, den String-Wert des Textobjekts der Ansicht zu beobachten oder sich für NSTextDidChangeNotification zu registrieren, aber da ich bereits einen Delegierten eingerichtet hatte und das Obenstehende von Nick Zitzmann getestet und mit dem Daumen nach oben versehen wurde, ging ich damit.
Tags und Links cocoa copy-paste nstextview