2009-08-24 15 views
7

Ho un NSTextView e richiedono le coordinate del punto di inserimento per visualizzare una vista sull'interazione dell'utente.NSpoint dal punto di inserimento NSTextView

C'è una funzione per ottenere l'indice dei caratteri da un NSPoint. Mi chiedo se c'è un modo semplice per fare il contrario?

Grazie per qualsiasi aiuto!

risposta

13

Sicuro: [textView firstRectForCharacterRange:[textView selectedRange]];

+0

Grazie, ha funzionato molto bene con una semplice linea di codice! – chaimp

+0

Questo è stato deprecato in 10.6, si dovrebbe ora usare '- (NSRect) firstRectForCharacterRange: (NSRange) aRange actualRange: (NSRangePointer) actualRange' – charles

+0

E al giorno d'oggi:' - (NSUInteger) characterIndexForInsertionAtPoint: (NSPoint) point; ' –

2

Potrebbe essere possibile farlo con una sottoclasse NSTextView, ignorando -drawInsertionPointInRect:color:turnedOn: per memorizzare nella cache il rettangolo di disegno e utilizzando il centro del rettangolo (o qualche altro punto interno).

NB: non ho provato questo.

+0

Grazie per aver offerto una soluzione. Ho finito per andare con [textView firstRectForCharacterRange: [textView selectedRange]]; – chaimp

+0

Aha, buona scoperta! – Wevah

Problemi correlati