IOS удалить клавиатуру

У меня есть несколько полей для редактирования текста, а также кнопка для отображения uidatepicker... если я перехожу к uitextedit, появляется клавиатура, но когда я нажимаю кнопку, клавиатура все еще здесь... как я могу ее удалить?

Спасибо!

4 ответа

Решение

Вам нужно использовать resignFirstResponderсмотри этот похожий вопрос.

[myTextField resignFirstResponder];

Посмотрите этот ответ, чтобы узнать, как проще всего это сделать: легкий способ отменить клавиатуру?

[self.view endEditing:YES];

Вызов -resignFirstResponder в текущем редактируемом текстовом поле.

Есть случаи, когда у меня нет прямого доступа к "первому ответчику", поэтому я склонен использовать другой подход. У меня есть служебный класс для клавиатуры с этой функцией:

+ (BOOL)dismiss:(UIView *)view
{
    if (view.isFirstResponder) {
        [view resignFirstResponder];
        return YES;
    }
    for (UIView *subView in view.subviews) {
        if ([Keyboard dismiss:subView]) // It's calling itself, just to be perfectly clear
            return YES;
    }
    return NO;
}

Это позволяет мне просто позвонить, например: [Keyboard dismiss:self.view] из любой точки UIViewController,

Другие вопросы по тегам