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