KeyBoard блокируется после увольнения поповера

В контроллере просмотра есть несколько текстовых полей, в которых некоторые из них настроены (одно нажатие на эти текстовые поля запускает поповерный контроллер, из которого пользователь может выбрать опцию, которая будет отображаться в текстовом поле с нажатием).

У меня есть жест касания на контроллере вида для отклонения клавиатуры (если она на экране).

Клавиатура блокируется (если она видна), когда я открываю контроллер поповера при нажатии на настроенное текстовое поле. Клавиатура не закрывается, даже если я коснусь родительского представления или кнопки отклонения на клавиатуре.

Я пробовал эти 2 фрагмента, чтобы скрыть клавиатуру, но она не работает

[self.scrollView endEditing:YES];
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];

1 ответ

Решение

Вы можете использовать делегат textfields, чтобы он не представлял клавиатуру, а вместо этого представляете popover самостоятельно, реализуя этот метод textFieldShouldBeginEditing.

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    if(textField == myCustomTextField) {
        [self openCustomPopover];
        return NO;
    }
    return YES;
}

подробнее о методах его делегатов здесь https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextFieldDelegate_Protocol/index.html:

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