2011-01-17 8 views
2

Я разрабатываю приложение для обмена сообщениями, имеющее интерфейс SMS.app-like. На экране диалога есть текстовое поле ввода внизу, которое перемещается вверх с помощью клавиатуры. Нажатие на область разговора отклоняет клавиатуру, вызывая метод resignFirstResponder в UITextView, который мы используем.Клавиатура не отменена

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

Еще более странно, что клавиатура остается видимой при навигации между контроллерами вида в UINavigationController. Я заметил две вещи:

  • if tap on '< Назад' из контроллера режима просмотра с активным текстовым полем и видимой клавиатурой, клавиатура исчезает при изменении зрения.
  • если нажать на '< Назад' из контроллера просмотра разговора с неактивным текстовым полем и видимой клавиатурой, клавиатура не исчезает при изменении вида.

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

+0

Я видел такие проблемы в приложениях Apple в более старых версиях операционной системы - можете ли вы узнать версии своих пользователей iOS? – Tim

+0

эта ошибка была замечена в последнем iOS - 4.2.1 – sgosha

ответ

0

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

+0

, если textFieldShouldEndEditing возвращает NO, тогда текстовое поле будет содержать фокус ввода. в моем случае текстовое поле отменяет статус первого ответчика, но клавиатура не исчезает. – sgosha

0

установить, что текстовое поле/текстовый делегат делегировать файл.

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