Отключить клавиатуру на ощупь в любом месте за пределами UITextField
Я занимаюсь разработкой приложения для iPad с большим количествомUIViewControllers
, UITableViews
(с клетками сaccessoryViews
изUITextFields
) и т. д. Многие изUIViewControllers
появляются в иерархии навигации.
Есть много разных мест, гдеUITextFields
появляются, в том числе какUITableViewCell
accessoryViews
.
Я хотел бы разработать эффективную стратегию для отклонения клавиатуры всякий раз, когда пользователь касается внеUITextField
в настоящее время редактируется. Я искал методы отклонения клавиатуры, но пока не нашел ответа, который объясняет, как может работать общая стратегия отклонения клавиатуры.
Например, мне нравится такой подход, когда следующий код добавляется в любой ViewController:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"* * * * * * * * *ViewControllerBase touchesBegan");
[self.view endEditing:YES]; // dismiss the keyboard
[super touchesBegan:touches withEvent:event];
}
... но этот метод не имеет отношения к ситуациям, когда, например, прикосновение происходит вUITableView
который на дисплее. Итак, мне нужно добавить код для вызоваendEditing
когдаUITableView
тронут и т. д., и т. д. Это означает, что мое приложение будет обильно посыпано большим количеством кода, чтобы закрыть клавиатуру, когда различные другиеUIElements
тронуты.
Я думаю, я мог бы просто попытаться определить все места, где нужно перехватить прикосновения и отклонить клавиатуру, но мне кажется, что где-то может быть лучший шаблон для обработки событий отклонения клавиатуры iOS.
Может кто-нибудь поделиться своим опытом в этом вопросе и порекомендовать конкретную технику для общей обработки отклонения клавиатуры во всем приложении?
Большое спасибо