Проблемы с iOS 5: исчезающая клавиатура при открытии UITextView - PullRequest
1 голос
/ 24 ноября 2011

У меня есть симпатичное маленькое приложение в магазине приложений, которое очень хорошо для себя. Жизнь была великолепна, пока iOS 5 не появилась в городе. Теперь у меня есть ряд проблем с моим приложением, которые я не могу исправить, потому что я понятия не имею, что происходит, потому что я чувствую, что это проблемы iOS 5, а не мои.

Было ли руководство по конвертации iOS 5, которое я пропустил? Или они просто все ради забавы и хотят, чтобы мы выяснили, где были все пасхальные яйца?

Вот проблема, с которой я сталкиваюсь (которую я потратил так много времени, пытаясь исправить), что вообще НЕ СУЩЕСТВУЕТ, когда я просто говорю, что хочу запустить приложение в хорошем старом 4.2:

Исчезающая клавиатура

Поэтому, когда я открываю простое модальное представление, я выбираю ячейку tableView, а затем представляю textView, чтобы пользователи могли вводить некоторый текст. Когда textView становится видимым, я вызываю [textView getsFirstResponder]; так что клавиатура готова и готова к использованию. Это работает с первого раза. Затем, когда вы закрываете modalView (и получаете странную ошибку, о которой я только что упомянул выше), а затем пытаетесь вернуться в modalView и открыть textView, клавиатура исчезает! Вы видите это в течение доли секунды, а затем POOF он ушел. У меня есть textView, на котором мой курсор активен, и я пытаюсь редактировать, но моя клавиатура отказывается отображаться. Опять же, это прекрасно работает в 4.2, но не в 5!

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

Спасибо за вашу помощь.

Edit:

Чтобы быть более ясным, я перейду к тому, что я пытаюсь достичь с моей иерархией представлений. Когда я отображаю мой модальный вид, у меня есть две разные ячейки, которые я заполняю некоторым текстом. Предполагается, что вторая ячейка является редактируемой, поэтому, когда пользователь касается ячейки, я показываю UITextView, который я спрятал в viewDidLoad, и вызываю [textView intoFirstResponder]; на textView, и он работает нормально. Текстовое представление доступно для редактирования, оно скрывает и обновляет содержимое соответствующей ячейки, когда клавиатура закрывается.

Проблема в том, что когда я закрываю модальное представление, затем возвращаюсь в модальное представление и выбираю редактируемую ячейку, textView отображается очень хорошо, и его можно редактировать, но клавиатура всплывает на экран, но затем летит прочь и не покажу. Так что у меня есть textView там и редактируемый, но, как ни старайся, клавиатура не будет отображаться! Это сводит меня с ума, особенно потому, что он отлично работает на iOS 4.2.

Ответы [ 3 ]

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

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

Итак, вот что вы делаете:

измените этот метод:

presentModalViewController:animated:

на новый предпочтительный метод, представленный в iOS 5:

presentViewController:animated:completion:

В зависимости от того, используете ли вы dismissModalViewControllerAnimated: для отклонения своего представления, измените его на dismissViewControllerAnimated:completion.

В этих методах также есть обработчик завершения, который очень полезен для выполнения дополнительной работы после представления / отклонения представления.,Может быть, это также помогает с другой проблемой.Дайте мне знать, если это поможет.

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

Ладно, я просто смог понять, что происходит в пламени. У меня было значение shouldAutorotateToInterfaceOrientation, установленное в переменную BOOL, которая могла бы измениться на TURE или FALSE, так что когда возвращался modalView, был шанс, что он не знал состояние / размер состояния бар. Если вручную установить значение TRUE, это решило проблему, и проблема исчезла.

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

я только что узнал на сайте разработчиков Apple эта страница .Я не знаю точно, правильно ли это, но есть некоторые документы, которые называются «iOS 4.x API diffs».Кажется, это список отличий от 4.x до 5.x.Надеюсь, это поможет.Bye

...