Клавиатура скрыта после того, как статьFirstResponder

Я обращаю внимание на UITextView после установки для его свойства .hidden значения NO. Когда я устанавливаю [textView статьFirstResponder], textView получает маленький курсор для набора текста, но клавиатура остается скрытой. Есть идеи, почему? Если это помогает, основное представление - это модальное представление, которое представляет UINavigationController.

РЕДАКТИРОВАТЬ: вот метод, который вызывается:

- (void)show_comment_elements {

    toolbar.hidden = YES;
    main_table.hidden = YES;
    add_comment_table.hidden = NO;
    comment_text.hidden = NO;

    [comment_text becomeFirstResponder];

}

Вот скриншот:

разочарование


person Raphael Caixeta    schedule 17.06.2011    source источник
comment
некоторый код тоже был бы полезен   -  person bshirley    schedule 17.06.2011
comment
Помогает ли это - bcaccinolo.wordpress.com/2010 / 12/28 / - при условии, что ваш контроллер модального представления нажат, и вы хотите, чтобы клавиатура отображалась немедленно.   -  person petert    schedule 17.06.2011
comment
Как ты это исправил? У меня была аналогичная проблема, было бы полезно опубликовать ваше решение   -  person Veeru    schedule 04.11.2011


Ответы (2)


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

Из документов ....

Объект респондента становится первым респондентом только в том случае, если текущий респондент может отказаться от статуса первого респондента (canResignFirstResponder), а новый респондент может стать первым респондентом.

Вы можете вызвать этот метод, чтобы сделать объект респондента, такой как представление, первым респондентом. Однако вы должны вызывать его в этом представлении, только если оно является частью иерархии представлений. Если свойство окна представления содержит объект UIWindow, он был установлен в иерархии представления; если он возвращает nil, представление отключается от какой-либо иерархии.

So:

  1. Можете ли вы подтвердить, что текущий респондент при вызове вашего метода может отказаться от статуса первого респондента?

  2. Ваше представление отображается в иерархии представлений, если оно отображается на снимке экрана. Если снимок экрана взят из IB, проверьте, что свойство окна представления не равно нулю.

  3. Убедитесь, что представление доступно для редактирования - if (comment_text.isEditable), иначе оно не примет статус первого респондента.

  4. Попробуйте добавить [comment_text setNeedsDisplay] для принудительного обновления с представлением, установленным в качестве первого респондента.

Если ничего из этого не работает, опубликуйте еще код (например, откуда вызывается метод).

person Chip Coons    schedule 21.06.2011

Эта проблема также возникает, когда вы изменяете nextResponder на некотором объекте в цепочке, так что цепочка респондента не переходит к UIWindow.

person Berik    schedule 24.03.2013