Я думаю, что лучший способ справиться с этим - поиск во всех подпредставлениях основного вида с помощью рекурсивной функции, посмотрите пример ниже
- (BOOL)findAndResignFirstResponder {
if (self.isFirstResponder) {
[self resignFirstResponder];
return YES;
}
for (UIView *subView in self.subviews) {
if ([subView findAndResignFirstResponder]) {
return YES;
}
}
return NO;
}
, а также вы можете применить этот метод к своему служебному классу и использовать его из жеста касания.,Все, что вам нужно сделать, это просто добавить к жесту для просмотра.
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(hideEverything)];
[self.tableView addGestureRecognizer:gestureRecognizer];
и затем вы можете вызвать метод hideEverything;
- (void) hideKeyboard {
[self.view findAndResignFirstResponder];
...
...
}