Почему клавиатура не отображается, когда вид извлекается из стека навигации? - PullRequest
1 голос
/ 15 ноября 2011

У меня есть несколько UITextField объектов на виде.Когда я нажимаю на них, я получаю клавиатуру и событие UIKeyboardWillShowNotification.Когда я помещаю новый контроллер представления в стек, в то время как одно из текстовых полей является первым респондентом, клавиатура анимируется (как я и ожидал).Когда я затем нажимаю кнопку «Назад», текстовое поле становится первым респондентом, но клавиатура не возвращается.Когда я нажимаю на другое текстовое поле в том же виде, клавиатура снова не появляется.Было бы хорошо, если бы клавиатура не была включена, когда я снова вошел в представление, но я не уверен, что может вызвать сбой при нажатии на другое текстовое поле.Почему это происходит, и как я могу это исправить?

Примечание: когда я оставляю первого респондента перед уходом с экрана, все работает нормально.

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

Я понял это, и, насколько я понимаю, это ошибка с кодом Apple.У меня есть свойство в одном из родительских представлений UITextField с именем firstResponder.Кажется, нет никаких причин, почему я не должен использовать это имя, но ясно, что Apple уже использовала его где-то в своем коде, и когда я создаю свойство с этим именем, это заставляет первый код респондента в структуре серьезноошибкаРешение состоит в том, чтобы назвать мою собственность как-нибудь еще.

Единственной причиной, по которой отставка первого респондента заставляла вещи работать, было то, что я также установил для свойства firstResponder значение nil.

0 голосов
/ 15 ноября 2011

Я полагаю, что клавиатура скрыта каким-то другим механизмом, кроме первого отклика, поэтому система считает, что она уже отображает клавиатуру, и поэтому не чувствует необходимости показывать ее снова.

Если вы можете получить простой пример приложения с воспроизводимой реализацией, это звучит как ошибка в iOS, о которой вы должны сообщить в Apple.

...