Reputation: 319
I have a UITapGestureRecognizer added to my UITextView. I have set the numberOfTapsRequired to 1, but I really need this to be ANY. aField is a UITextView. I need any number of taps to call the selector. Any way to do this?
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stateFieldSelected)];
singleTap.numberOfTapsRequired = 1;
[aField addGestureRecognizer:singleTap];
The purpose is, I am launching a UIPickerView when they tap the State field, but if they double or triple tap the state field, it will pull up the keyboard. I could add many gesture recognizers, but it seems lame to have to do that.
Upvotes: 0
Views: 1449
Reputation: 130222
There isn't anything wrong with using multiple gesture recognizers on a view. But if you're worried about the single tap action being called twice in addition to the double tap action you could specify that the single tap recognizer requires the double tap recognizer to fail:
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(someOtherMethod)];
[doubleTap setNumberOfTapsRequired:2];
[aField addGestureRecognizer:doubleTap];
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stateFieldSelected)];
[singleTap setNumberOfTapsRequired:1];
[singleTap requireGestureRecognizerToFail:doubleTap];
[aField addGestureRecognizer:singleTap];
Upvotes: 2