Отключить клавиатуру на ощупь в любом месте за пределами 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.

Может кто-нибудь поделиться своим опытом в этом вопросе и порекомендовать конкретную технику для общей обработки отклонения клавиатуры во всем приложении?

Большое спасибо

Ответы на вопрос(8)

Ваш ответ на вопрос