2009-08-24 4 views
7

У меня есть NSTextView и требуются координаты точки вставки, чтобы отображать их там при взаимодействии с пользователем.NSpoint из точки вставки NSTextView

Существует функция, чтобы получить индекс символа от NSPoint. Мне интересно, есть ли простой способ сделать обратное?

Спасибо за помощь!

ответ

13

Уточнить: [textView firstRectForCharacterRange:[textView selectedRange]];

+0

Спасибо, это сработало очень хорошо в простой простой строке кода! – chaimp

+0

Это было устарело в 10.6, теперь нужно использовать '- (NSRect) firstRectForCharacterRange: (NSRange) aRange actualRange: (NSRangePointer) actualRange' – charles

+0

И теперь:' - (NSUInteger) characterIndexForInsertionAtPoint: (NSPoint) point; ' –

2

Возможно, вы сможете сделать это с подклассом NSTextView, переопределив -drawInsertionPointInRect:color:turnedOn:, чтобы кэшировать чертеж rect и использовать центр прямоугольника (или некоторую другую внутреннюю точку).

NB: Я не пробовал это.

+0

Благодарим за предложение решения. Я закончил работу с [textView firstRectForCharacterRange: [textView selectedRange]]; – chaimp

+0

Ага, хорошая находка! – Wevah

Смежные вопросы