Итак, у меня есть UITextView, который я использую для создания подвижной редактируемой метки (мои предыдущие поиски в SO показали, что это, по-видимому, лучший вариант). Мне нужно, чтобы пользователь дважды нажимал, чтобы разрешить редактирование, и настроить его так, чтобы он стал первым респондентом. Я не могу найти способ сделать это, а все остальные мои поиски давали либо устаревшие, либо расплывчатые ответы. Ничего из того, что я пробовал, похоже, не работает. Я пробовал использовать UITextViewDelegate
, чтобы он начал редактирование, а не выделял текст с помощью textViewDidChangeSelection:
, но он не работает, пока вы не измените текущий выбор. Я также пробовал использовать пользовательский UITapGestureRecognizer
вот так:
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)];
[doubleTap setNumberOfTapsRequired:2];
[doubleTap setNumberOfTouchesRequired:1];
[newLabel addGestureRecognizer:doubleTap];
-(void)doubleTap:(UITapGestureRecognizer *)sender
{
NSLog(@"Double tap detected");
NSLog(@"Sender view of class %@", [[sender view] class]);
UITextView *tappedView = (UITextView *)[sender view];
[tappedView setEditable:YES];
[tappedView becomeFirstResponder];
// [tappedView setEditable:NO];
}
Жест двойного касания никогда не вызывается. Не знаю почему. Странно, но при этом тоже не выделяет текст. Вроде просто ломает жесты двойного тапа. Есть ли способ избавиться от стандартного жеста выбора двойным касанием или изменить его? Должен ли я создать подкласс UITextView и, если да, что мне изменить?