2009-08-24 10 views
7

Ich habe eine NSTextView und erfordern die Koordinaten des Einfügemarke, um eine Ansicht dort auf Benutzerinteraktion anzuzeigen.NSpoint von NSTextView-Einfügepunkt

Es gibt eine Funktion zum Abrufen des Zeichenindex von einem NSPoint. Ich frage mich, ob es einen einfachen Weg gibt, das Gegenteil zu tun?

Danke für jede Hilfe!

Antwort

13

Sicher: [textView firstRectForCharacterRange:[textView selectedRange]];

+0

Danke, das funktionierte sehr gut in einer netten einfachen Codezeile! – chaimp

+0

Dies wurde in 10.6 veraltet, sollte man jetzt '- (NSRect) firstRectForCharacterRange verwenden: (NSRange) aRange actualRange: (NSRangePointer) actualRange' – charles

+0

Und heutzutage:' - (NSUInteger) characterIndexForInsertionAtPoint: (NSPoint) Punkt; ' –

2

Sie können dies möglicherweise mit einer NSTextView-Unterklasse tun, indem Sie -drawInsertionPointInRect:color:turnedOn: überschreiben, um die Zeichnung rect zu cachen und die Mitte des rect (oder eines anderen inneren Punkts) zu verwenden.

NB: Ich habe das nicht versucht.

+0

Vielen Dank für die Bereitstellung einer Lösung. Am Ende ging ich mit [textView firstRectForCharacterRange: [textView selectedRange]]; – chaimp

+0

Aha, guter Fund! – Wevah

Verwandte Themen