2016-09-25 2 views
0

Ich habe ein NSTextView-Objekt in einer komplexen benutzerdefinierten Ansicht. Ich brauche diese benutzerdefinierte Ansicht als erste Antwort (aus mehreren Gründen, z. B. um den Fokusring richtig zu zeichnen). Der NSTextView-Cursor muss jedoch weiterhin blinken, als ob die Textansicht der erste Responder wäre.Cursor blinkt, wenn NSTextView nicht der erste Responder ist?

Hier ist im Wesentlichen, was ich in meiner Anwendung (ein Screenshot des Suchfeldes in Apple Mail) sehen mag:

enter image description here

Beachten Sie, dass die Textansicht mit dem Cursor der leere Bereich ist in der Lage Anfang davon. Die anderen Elemente gehören zur übergeordneten benutzerdefinierten Ansicht, um die der Fokusring herum angeordnet ist. Der Cursor blinkt!

+0

Welche Ansicht sollten die keydown Events? Es sieht so aus, als wäre die Textansicht im Suchfeld der Feldeditor in einer (benutzerdefinierten Unterklasse von) 'NSTokenField',' NSSearchField' oder 'NSTextField'. – Willeke

+0

Es ist mir egal, welche Ansicht die Keydown-Ereignisse bekommt, ich kann sie auf jeden Fall zum richtigen Ziel (der Textansicht) leiten. Spielt es eine Rolle, welcher Typ der Ansicht das Suchfeld im Screenshot ist? Ich habe versucht, NSTextField zu erstellen, aber dann musste ich zu NSTextView wechseln, um mehr API-Flexibilität zu bieten. – evgeny

+0

Der Screenshot zeigt ein Steuerelement mit der Textansicht des Feld-Editors. Das Steuerelement hat den Fokus und die Textansicht ist der erste Responder. – Willeke

Antwort

0

Ich konnte dieses Verhalten nicht mithilfe der Standardsteuerelemente implementieren. Meine endgültige Lösung besteht darin, das Suchfeld in eine andere benutzerdefinierte Ansicht mit breiten Rändern einzufügen und eine benutzerdefinierte Fokusringzeichnung zu implementieren.

Hier ist, wie meine zugig Kontrolle wie folgt aussieht:

enter image description here

Verwandte Themen