Я полагаю, что это продолжение вашего другого вопроса: Предотвращение события касания в UITextView
Вместо того, чтобы отключить этот распознаватель жестов, вы можете попробовать «перехватить» его.
for (UIGestureRecognizer *g in myTextView.gestureRecognizers)
{
if ([g isKindOfClass:[UITapGestureRecognizer class]])
{
if (([(UITapGestureRecognizer *)g numberOfTouchesRequired] == 2) && ([(UITapGestureRecognizer *)g numberOfTapsRequired] == 1))
{
//[g setEnabled: NO]; this was for disabling
[g removeTarget:nil action:nil]; //this removes all targets and actions (documentation!)
[g addTarget: self action:@selector(myHandler:)];
}
}
}
- (void)myHandler:(UIGestureRecognizer *)sender {
NSLog (@"success...");
//do your stuff
}
РЕДАКТИРОВАТЬ: если это (в соответствии с вашим отредактированным вопросом) перестает работать, когда появляется клавиатура, попробуйте это: переопределить - (void)textViewDidBeginEditing:(UITextView *)textView
метод вашего textViewDelegate
и поместить тот же код внутри.