UITextView selectedRange не отображается при программной установке
Моя проблема заключается в том, что программно устанавливается выбранный диапазон UITextViewвыбирает текст, ноне визуально показать этовыбран. Похоже ли это на ошибку в OS 3.0 / 3.1. Что еще более важно, какое-либо решение или предложения для получения выбора для отображения? (образец проекта связан в нижней части сообщения)
Откуда я это знаю?выбран с тех пор как яя не получаю визуальную обратную связь? Две причины:
Нет мигающего курсораНажатие любой клавиши на клавиатуре удаляет существующий текст в диапазоне выбора.У меня есть UITextView в viewcontroller, который позволяет редактировать изменяемое пользователем значение. Контроллер редактора открывается при двойном нажатии на строку таблицы или когда пользователь нажимает кнопку раскрытия подробностей в строке. Viewcontroller поступает через presentModalViewController, а в редакторе VC 's viewWillAppear метод, я запускаю клавиатуру с[self.textView becomeFirstResponder];
Иногда я хочу запустить редактор с выбранным содержимым всего текстового представления, чтобы пользователь мог просто начать печатать и удалить существующее содержимое (это потому, что я создаю новые элементы с заголовками по умолчанию, поэтомуs почти наверняка, пользователь сначала удалит все содержимое текстового поля редактора, а затем напечатает их заголовок).
Некоторые из вещей, которые ямы уже пробовали:
установка выбранного диапазона в viewDidAppear (вместо и в дополнение к выполнению этого в textViewDidBeginEditing).Замена _textView.text на копию текста в нем с последующим применением selectedRange (в textViewDidBeginEditing) ... думая, может быть, если я 'Я имею дело с ошибкой фреймворка, это может обойти это.[[_textView webView] selectAll];
(частный API). такое же поведение, текст выделяется без визуальной обратной связи.отправка _textView setNeedsDisplay и setNeedsLayout.используя executeSelector ... afterDelay, чтобы установить selectedRange так, чтобы это происходило после выхода из textViewDidBeginEditing.ссылки на С.О .: Вот а такжеВот
// UITextFieldDelegate Methods...
- (void)textViewDidBeginEditing:(UITextView *)_textView
{
NSInteger len = [_textView.text length];
if( self.selectInitialText ){
//NOTE: this is not working as expected. Indeed the text is
// selected but the highlighting of the text isn't showing.
_textView.selectedRange = NSMakeRange(0,len);
}
}
-- РЕДАКТИРОВАТЬ --
Вот'Пример проекта, представленного в Apple BugReporter.Скачать пример проекта BugReport_7380723
Дополнительная информация:
Создавая и играя с примером проекта, я обнаружил две вещи:
Когда там'текст выделен, но подсветка не отображается, затем нажмите несколько клавиш "встряхнуть, чтобы отменить " и оригинальный текст восстановленно это подсвечен.
Если вы вручную сделаете выбор в текстовом представлении, затем нажмите «Выбрать все" кнопка [ссылается на пример проекта, связанный выше], весь текст выделенА ТАКЖЕ правильно отображает подсветку.