как получить текст uitextview в определенной области

мне нужно получить текст из uitextview. Текст, который мне нужен, находится в определенной области после прокрутки текстового представления, а не всего текста в uitextview. я опишу, что мне нужно в некоторых изображениях.

во-первых, у меня есть это текстовое представление введите здесь описание изображения

затем я хочу получить текст, как на этом изображении: введите здесь описание изображения

но я не знаю, как это сделать, может кто-нибудь мне помочь? Спасибо


person R. Dewi    schedule 01.08.2012    source источник


Ответы (1)


Интересный и необычный вопрос.

[Переписать для UITextView, первоначально написанного для UITextField]

UITextView — это, по сути, элемент управления вводом текста, завернутый в UIScrollView (с использованием наследования). UIScrollView работает, перемещая свое содержимое, используя координаты его представления относительно его фрейма.

Посмотрите на contentOffset UITextView, чтобы получить количество произошедшей вертикальной прокрутки (текст прокручивается вверх, поэтому значение y будет отрицательным).

Как только у вас будет количество прокрутки, вам нужно получить шрифт для UITextView. Используйте NSString sizeWithFont, чтобы получить высоту строки. Разделите координату y на высоту строки, и это даст вам, сколько новых строк нужно пропустить.

Конец видимого текста немного отличается. В зависимости от структуры вашего контроллера размер UITextView может быть изменен или нет. Например, если вы используете UITableViewController, он обычно автоматически изменяет размер tableView. Я собираюсь предположить, что вы изменили размер UITextView, и в этом случае конец «y» — это начало «y» + textView.frame.size.height. Если вы не изменили размер UITextView, чтобы он соответствовал пространству над клавиатурой, вы измените дизайн для этого или вычтете размер экранной клавиатуры.

Надеюсь это поможет

person Gordon Dove    schedule 01.08.2012
comment
спасибо за ответ, но это uitextview, а не uitextfield :) Можете ли вы сказать мне, какое представление мне нужно перевести? - person R. Dewi; 01.08.2012
comment
Спасибо, Р, за указание на это. Это позволило мне улучшить мой довольно неадекватный первый ответ. - person Gordon Dove; 02.08.2012