Я создаю приложение iOS 8 с Xcode 6.0.1 для своего iPhone 5 (на котором есть iOS 8.0.2). Я хочу сделать так, чтобы, когда пользователь нажимает на мой UITextView
, весь текст выбирается, поэтому он может легко начать вводить и стирать то, что там было (но я не хочу, чтобы текст был автоматически удален, так как пользователь может захотеть сохранить его или добавить к нему). Чтобы сделать это, у меня есть следующий код:UITextView selectВсе метод не работает должным образом
- (void)textViewDidBeginEditing:(UITextView *)textView {
if ([textView hasText]) {
NSLog(@"selectedRange before: %d", textView.selectedRange.length);
[textView selectAll:self];
NSLog(@"selectedRange after: %d", textView.selectedRange.length);
}
}
Когда этот метод вызывается, консольный вывод, что я ожидал (т.е. длина selectedRange
такой же, как количество символов в тексте textView
«s) , Тем не менее, ничего не отображается, как выбрано в UITextView
, и он не действует выбранным (т. Е. Всплывающее меню выбора).
Я видел несколько вопросов, подобных этому в Интернете, но ни один из предоставленных решений не работал для меня (и некоторые из них записали его как ошибку, не предоставив никакого решения). Изменение идентификатора отправителя на что-то отличное от self
(например, nil
) не помогло, и также не помогло позвонить [textView select:self]
, как предложил один человек. Я также пробовал этот код:
- (void)textViewDidBeginEditing:(UITextView *)textView {
if ([textView hasText]) {
UITextRange *range = [textView textRangeFromPosition:textView.beginningOfDocument toPosition:textView.endOfDocument];
[textView setSelectedTextRange:range];
}
}
Но у него такая же проблема.
Любые предложения?
Странное поведение. Как вы можете видеть в этом видео http://m.youtube.com/watch?v=iPXsVvva97E, он должен работать следующим образом: – TMob
Точно. Я тоже видел это видео и не могу понять, что я делаю неправильно. –
У меня такая же проблема, вы нашли какое-то исправление? –