2016-05-10 2 views
1

У нас очень странная проблема с клавиатурой IOS. У нас есть 2 контроллера вида с двумя текстовыми полями в первом и UISearchbar во втором.Клавиатура, не показывающая после редактирования некоторых полей

Если мы не редактируем текстовое поле, мы можем отображать клавиатуру в каждом текстовом поле и в панели поиска на обоих мониторах просмотра, однако, когда мы редактируем один из них, мы теряем возможность отображения клавиатуры, даже если функция делегата должна быть включена. запущен ... у вас была аналогичная проблема? Это похоже на ошибку со скрытием клавиатуры ...

Когда мы увольняем оба ViewControllers, клавиатура снова начинает работать. Когда мы проверяем первый ответчик и равно нуль, а окна являются следующим:

2016-05-10 09: 27: 11,722 Nepcom [1352: 1777156] isKeyWindow = 1 окно уровня = 0,0 кадра = { {0, 0}, {375, 667}} class = UIWindow 2016-05-10 09: 27: 11.723 Nepcom [1352: 1777156] isKeyWindow = 0 window level = 1.0 frame = {{0, 0}, { 375, 667}} class = UITextEffectsWindow 2016-05-10 09: 27: 11.723 Nepcom [1352: 1777156] isKeyWindow = 0 window level = 2100.0 frame = {{0, 0}, {375, 667}} class = UITextEffectsWindow

Мы не знаем, что делать. Спасибо заранее.

+0

просто добавить метод уведомления клавиатуры и проверьте, что называется или нет –

+0

это не называется ... мы имеем уведомление уже наблюдалось – Kasas

ответ

0

Во-первых, это может быть связано с тем, что клавиатура покрыта окном более высокого уровня (для получения дополнительной информации см. ОкноLevel). В iOS клавиатура является подвид независимого окна. Окно имеет более высокий уровень, чем ключевое окно приложения, поэтому оно всегда отображается спереди. Если вы создадите другое окно в позиции перекрытия и сделаете его уровень выше, чем у окна клавиатуры, тогда клавиатура будет закрыта, что станет невидимым для ваших пользователей. Вы можете подтвердить это, проверяя соответствующие атрибуты окна приложения

из

https://developer.apple.com/library/ios/qa/qa1813/_index.html

+0

В этом случае первый ответчик был бы равен нулю? С другой стороны, мы не создаем никакого другого окна ... если мы не будем редактировать содержимое текстовых полей первого контроллера представлений, на клавиатуре показывается подсказка – Kasas

+0

, ваш первый ответчик не должен быть ник. см. методы делегатов текстового поля, а также фрейм представления представления диспетчера представлений. –

+0

Ваш текстовый вид ввода отказывается стать первым ответчиком. Это может произойти, когда метод метода ((BOOL) startFirstResponder вашего класса вида возвращает NO. Если вы переопределите этот метод по некоторым причинам, убедитесь, что он возвращает YES, когда представление ввода текста является интерактивным. –

Смежные вопросы