2009-08-24 15 views
7

J'ai un NSTextView et exige que les coordonnées du point d'insertion affichent une vue lors de l'interaction de l'utilisateur.NSpoint à partir du point d'insertion NSTextView

Il existe une fonction permettant d'obtenir l'index de caractères à partir d'un NSPoint. Je me demande s'il y a un moyen facile de faire le contraire?

Merci pour toute aide!

Répondre

13

Sure: [textView firstRectForCharacterRange:[textView selectedRange]];

+0

Merci, cela a très bien fonctionné dans une belle ligne simple de code! – chaimp

+0

Ceci était obsolète en 10.6, on devrait maintenant utiliser '- (NSRect) firstRectForCharacterRange: (NSRange) aRange currentRange: (NSRangePointer) actualRange' – charles

+0

Et de nos jours:' - (NSUInteger) characterIndexForInsertionAtPoint: (NSPoint) point; ' –

2

Vous pourriez être en mesure de le faire avec une sous-classe NSTextView, en remplaçant -drawInsertionPointInRect:color:turnedOn: pour mettre en cache le rectangle de dessin et en utilisant le centre du rect (ou un autre point intérieur).

NB: Je n'ai pas essayé cela.

+0

Nous vous remercions d'avoir offert une solution. J'ai fini par aller avec [textView firstRectForCharacterRange: [textView selectedRange]]; – chaimp

+0

Aha, bonne trouvaille! – Wevah

Questions connexes