2010-11-04 3 views
1

Я пишу универсальное приложение iOS, которое для него является компонентом ввода текста. Когда отображается представление с UITextView в нем, я вызываю [UITextView getFirstResponder], чтобы клавиатура всплывала. Когда пользователь отбирает/сохраняет, контроллер просмотра вызывает всплывающее меню на навигационном контроллере, а клавиатура должна автоматически исчезнуть.Проблемы с iPad, UITextView и firstResponder

Это прекрасно работает на iPhone/iPod touch, но на iPad клавиатура остается вверх, с дополнительным видом, даже после того, как открывается вид. Я пробовал все: проверять утечки с помощью инструментов, статического анализатора, явным образом вызывая [UITextView resignFirstResponder] несколько раз, кучи, и независимо от того, что я не могу заставить клавиатуру исчезнуть после того, как контроллер экрана выскочил или выяснил, почему черт возьми, этого не будет. Это огромная проблема, потому что «предыдущий» контроллер представления в иерархии UINavigationController не имеет текстового поля, а вид аксессуаров остается на клавиатуре и когда кнопки на нем прослушиваются, они отправляют сообщения на освобожденный вид контроллер, вызывающий сбой.

Единственная разница, которую я могу назвать между версией iPhone/iPad, заключается в том, что версия для iPhone, конечно же, представляет навигационный контроллер по всему экрану, а на iPad навигационный контроллер представлен в UIModalPresentationFormSheet.

Надеюсь, этого достаточно, чтобы кто-то мог диагностировать проблему. Если это не так, я отправлю образец проекта.

ответ

2

Если я правильно помню, клавиатура всегда отображается, пока что-то представлено в UIModalPresentationFormSheet. Попробуйте что-то другое и посмотрите, работает ли это.

+0

Хороший звонок. Это раздражает. Очень расстраивает тоже. Любые предложения для показа модального контроллера, который позволяет вводить текст и разумную клавиатуру без использования полного экрана? – refulgentis

+0

Не знаю, о чем я знаю, хотя, вероятно, есть способы это сделать. Вы пробовали увидеть, будет ли popover работать для вас? –