Я разрабатываю приложение для 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
при endEditing
UITableView
и т.д. И т.д. И т.д. Это означает, что мое приложение будет обильно обсыпано большим количеством кода, чтобы закрыть клавиатуру при касании различных других UIElements
.
Я думаю, я мог бы просто попытаться определить все места, где нужно перехватить прикосновения и отклонить клавиатуру, но мне кажется, что где-то может быть лучший шаблон дизайна для обработки событий отклонения клавиатуры iOS.
Может ли кто-нибудь поделиться своим опытом в этом вопросе и порекомендовать конкретную технику для общей обработки отказа клавиатуры во всем приложении?
Большое спасибо