Ändern der Textauswahlfarbe in NSTextView

8

Ich versuche, eine "Highlight" -Funktion in einem NSTextView zu schreiben. Momentan läuft alles super. Sie wählen einen Textbereich aus und die Hintergrundfarbe dieses Textes wird gelb. Solange der Hintergrund ausgewählt ist, ist der Hintergrund jedoch das Standardblau des ausgewählten Texts. Wie kann ich erreichen, dass die Standard-Auswahlindikatorfarbe in bestimmten Fällen nicht angezeigt wird?

Danke!

    
DexterW 29.11.2010, 01:43
quelle

1 Antwort

16

Verwenden Sie -[NSTextView setSelectedTextAttributes:...] .

Zum Beispiel:

%Vor%

Sie können einfach ein leeres Wörterbuch übergeben, wenn die Auswahl überhaupt nicht angezeigt werden soll (kurz, um den Einfügepunkt zu verbergen).

Eine andere Möglichkeit besteht darin, nach Selektionsänderungen Ausschau zu halten und die "Auswahl" mithilfe von temporäre Attribute . Beachten Sie, dass temporäre Attribute verwendet werden, um Rechtschreib- und Grammatikfehler anzuzeigen und Ergebnisse zu finden. Wenn Sie also diese Features von NSTextView beibehalten möchten, sollten Sie nur temporäre Attribute hinzufügen und entfernen, nicht ersetzen.

Ein Beispiel dafür ist (in einer NSTextView-Unterklasse):

%Vor%     
Nicholas Riley 29.11.2010, 02:13
quelle