我有一個UITextField,它是UIScrollView的子視圖 我有作爲UITextField的一部分存在一個輕擊手勢(或者更老的觸摸),使它成爲第一響應者。我想添加一個雙擊手勢到UITextField。爲了使這兩個手勢的互斥,我需要超載(儘管這不是正確的詞,因爲我不使用相同的名稱)單擊手勢。當我這樣做時,只要它調用的函數不會使UITextField成爲第一響應者,它就可以正常工作。如果它確實使文本字段成爲第一個響應者,那麼它第二次失敗時會調用.... wtf。所以,堆積一點幫助會有很大的幫助。UIGesture在IOS中未知原因失敗
這是我加手勢
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說出來把註冊到文本框,這是檢查gestuers我的singleTextTap手勢的狀態。這是第一次'結束',所有下一次這個代碼永遠不會到達
這個答案給了我線索我需要解決我自己的問題。當點擊文本字段子視圖時,我忽略了一個點擊識別器。通過暫時禁用文本字段中的所有「gestureRecognizers」,我得到了我正在尋找的行爲,沒有不良副作用。 – phatmann 2014-05-05 20:13:32