UIScrollView의 하위보기 인 UITextField가 있습니다. 첫 번째 응답자가되는 UITextField의 일부로 단일 탭 제스처 (또는 이전 터치)가 있습니다. UITextField에 두 번 탭 제스처를 추가하려고했습니다. 두 제스처를 상호 배타적으로 만들기 위해 과부하가 필요했습니다 (동일한 이름을 사용하지 않았으므로이 단어는 맞지 않지만). 단일 탭 제스처. 내가 할 때 그것을 호출하는 함수가 첫 번째 응답자 UITextField 만들지 않는 한 그것은 잘 작동합니다. 텍스트 필드를 첫 번째 응답자로 만들면 두 번째로 실패합니다 .... wtf. 그래서 스택, 조금 도움이 먼 길을 갈 것입니다. 나는 제스처를IOS에서 알 수없는 이유로 UIGesture가 실패 함
UITapGestureRecognizer * singleTextTap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleTextTap:)];
singleTextTap.numberOfTapsRequired = 1;
[aTextField addGestureRecognizer:singleTextTap];
를 추가 할 경우
이
이며,이 그것이 당신이 밖으로이 확인했다 텍스트 필드에 등록 된 gestuers을두고 NSLog를 알 수 있습니다//single tap text
- (void) handleSingleTextTap:(UITapGestureRecognizer *)gestureRecognizer{
NSLog(@"handling single tap");
NSLog(@"textField gestures %@",
[gestureRecognizer.view.gestureRecognizers descriptionWithLocale:nil]);
[(UITextField *)gestureRecognizer.view becomeFirstResponder];
}
라고있는 곳입니다 내 singleTextTap 제스처의 상태. 이 코드는 처음에는 '종료'되고 다음 번에는이 코드에 도달하지 않습니다
이 대답을 통해 내 문제를 해결하는 데 필요한 단서를 얻을 수있었습니다. 텍스트 필드 하위보기를 탭할 때 무시 된보기에 대한 탭 인식기가 있습니다. 텍스트 필드의 모든'gestureRecognizers'를 일시적으로 비활성화함으로써 내가 부작용없이 찾고있는 행동을 얻었습니다. – phatmann