спрятать клавиатуру
Добрый день.
Ни как не могу понять как спрятать клавиатуру в следующей ситуации:
есть некоторое количество текстовых полей UITextField(view controller является делегатом, по клику на Done клавиатура прячется, тут все нормально), а так же есть кнопка UIButton. По клику на кнопку осуществляется какое то действие, потом осуществляется переход к другому view (в navigation controller добавляется новый view controller). Так вот если я заполняю какое то поле, потом нажимаю на UIButton и перехожу к новому view controller, то клавиатура остается открытой. Ставить [textField resignFirstResponder]; на все текстовые поля при переходе к новому контроллеру как то не логично, поэтому вопрос: как спрятать открытую клавиатуру (если она открыта) при клике на UIButton?
Ответы
Можно сделать наследника UITextField, хватать там получение фокуса и запоминать, в каком поле сейчас фокус. Потом посылать resign ему.
Но вообще скорее всего можно просто форсированно проставить фокус другому элементу. При потере фокуса клавиатура должна пропасть.
for (UIView *childView in [self.view subviews]) {
if ([childView isFirstResponder]) {
[childView resignFirstResponder];
}
}
есть способ красивее?