Wenn ich Text in eine NSTextView einfüge, wie kann ich nur reinen Text einfügen?

7

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?

    
Stephen Hsu 18.08.2011, 03:04
quelle

4 Antworten

6

Definieren Sie eine benutzerdefinierte NSTextView -Klasse mit folgender Methode:

%Vor%

Hinweis : Ab Mac OS X wird der neue typedef für den Typ Pasteboard als NSPasteboardTypeString anstelle von NSStringPBoardType :

angegeben %Vor%     
Stephen Hsu 26.08.2011, 00:17
quelle
9

Verwenden Sie setRichText: um Rich Text zu deaktivieren.

    
jtbandes 18.08.2011 03:15
quelle
4

Überschreibe diese Methode in deinem NSTextView :

%Vor%

Für mich funktionierte das sowohl zum Einfügen als auch zum Ziehen und Ablegen.

    
Mihhail 30.08.2015 15:26
quelle
1

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.

    
Jerry Krinock 06.11.2013 17:22
quelle

Tags und Links