Имам UITextField, който е подизглед на UIScrollView. Имам един жест с докосване (или може би по-старото докосване) като част от UITextField, което го прави първият отговор. Исках да добавя жест с двойно докосване към UITextField. За да направя двата жеста взаимно изключващи се, трябваше да претоваря (въпреки че това не е съвсем точната дума, защото не използвам едно и също име) жеста с едно докосване. Когато го направя, работи добре, стига функцията, която извиква, да не направи UITextField първия отговор. Ако направи текстовото поле първи отговор, то се проваля при второто извикване.... wtf. Така че стек, малко помощ ще помогне много.
тук добавям жеста
UITapGestureRecognizer * singleTextTap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleTextTap:)];
singleTextTap.numberOfTapsRequired = 1;
[aTextField addGestureRecognizer:singleTextTap];
и тук се нарича
//single tap text
- (void) handleSingleTextTap:(UITapGestureRecognizer *)gestureRecognizer{
NSLog(@"handling single tap");
NSLog(@"textField gestures %@",
[gestureRecognizer.view.gestureRecognizers descriptionWithLocale:nil]);
[(UITextField *)gestureRecognizer.view becomeFirstResponder];
}
може да забележите NSLog, който извежда жестовете, регистрирани в textField, това беше, за да провери състоянието на моя жест singleTextTap. който е "завършен" първия път и всички следващи пъти този код никога не е достигнат