Как узнать координаты последнего символа, добавленного в UITextView в iPad

Я хочу вставить UITextField между текстом UITextView, чтобы обеспечить функциональность «заполнения пробелов». Я знаю, что UITextField нельзя добавить в UITextView, поэтому я хочу добавить UITextField в суперпредставление UITextView, сохраняя место для этих UITextFields в UITextView.

Как я могу определить координаты конкретного символа относительно источника UITextView? Фрейм textView и его суперпредставление одинаковы. Кто-нибудь может сказать мне, как это сделать? Есть ли другой способ заполнить пробелы в абзаце текста?


person Hariprasad    schedule 16.03.2011    source источник


Ответы (1)


Вы можете использовать дополнения UIStringDrawing к класс NSString, чтобы помочь найти расположение персонажей.

// characterIndex is the index of the character for which you are finding the position
NSString *string = [myTextView.text substringToIndex:characterIndex];
CGSize sizeOfString = [string sizeWithFont:myTextView.font constrainedToSize:myTextView.contentSize];

Если искомый символ находится в первой строке текстового представления, sizeOfString предоставит вам координаты (смещение по высоте строки).

Если символ, который вы ищете, не находится в первой строке, вам нужно будет итеративно определять местоположение каждого символа до символа, который вы ищете, изменяя подстроку, чтобы удалить предыдущие строки текста каждый раз, когда вы обнаруживаете конец линия. Вы можете определить конец строки, отметив, когда высота sizeOfString изменилась между итерациями.

person Greg    schedule 16.03.2011
comment
Спасибо за ответ. Я попробую и дам вам знать. - person Hariprasad; 16.03.2011