2009-08-24 19 views
7

Tengo un NSTextView y necesito las coordenadas del punto de inserción para mostrar una vista allí con la interacción del usuario.NSpoint desde el punto de inserción NSTextView

Hay una función para obtener el índice de caracteres de un NSPoint. Me pregunto si hay alguna manera fácil de hacer lo opuesto.

¡Gracias por cualquier ayuda!

Respuesta

13

Seguro: [textView firstRectForCharacterRange:[textView selectedRange]];

+0

¡Gracias, esto funcionó muy bien en una línea de código simple y agradable! – chaimp

+0

Esto estaba en desuso en 10.6, uno debería usar '- (NSRect) firstRectForCharacterRange: (NSRange) aRange actualRange: (NSRangePointer) actualRange' – charles

+0

Y hoy en día:' - (NSUInteger) characterIndexForInsertionAtPoint: (NSPoint) point; ' –

2

Puede ser posible hacerlo con una subclase NSTextView, anulando -drawInsertionPointInRect:color:turnedOn: para almacenar en caché el rect de dibujo y utilizando el centro del recto (o algún otro punto interior).

NB: No he intentado esto.

+0

Gracias por ofrecer una solución. Terminé yendo con [textView firstRectForCharacterRange: [textView selectedRange]]; – chaimp

+0

Aha, buen descubrimiento! – Wevah

Cuestiones relacionadas