У меня есть UITextView, содержащий документ. Если пользователь касается документа, точка вставки (свойство selectedRange) устанавливается соответствующим образом, и UITextView становится первым респондентом (появляется клавиатура). YAY!
Как я могу сделать то же самое программно? Допустим, у меня есть кнопка с заголовком «Изменить на 1000 символов». Я хочу, чтобы для selectedRange было установлено значение [1000, 0], а затем текстовое представление стало первым респондентом.
Проблемы ...
textview.selectedRange setter имеет эффект только при вызове из viewDidAppear.
[textview intoFirstResponder] устанавливает точку вставки в конец документа.
Итак, лучшее, что я могу сделать, - это сначала стать первым ответчиком, а затем установить выбранный диапазон. Пользователь видит вид, прокручивает до конца документа и затем возвращается к нужной точке вставки. Вроде некрасиво.
Стоит ли пытаться скрыть уродство, взламывая флаги 'scrollEnabled' и 'editable' во время перехода? Или есть лучший способ сделать это?