После закрытия UIWindow курсор в списке поиска отсутствует

Я создал пользовательские UIWindow, UIViewController и UIView, чтобы представить полноэкранный оверлей для различных экранов через приложение. Отображение, поворот и отключение наложения отлично работают.

Однако проблема заключается в том, что после отклонения настраиваемого UIWindow в поле поиска в одном из моих базовых представлений нет мигающего синего курсора. Появляется клавиатура, и я могу вводить символы в поле поиска, но без курсора.

Другая странность заключается в том, что курсор отображается в симуляторе iOS, как ожидалось, но не на устройстве.

У кого-нибудь есть идеи, что здесь происходит? Я уже пробовал пройтись по иерархии представлений оверлея, чтобы убедиться, что все представления ResignFirstResponder (). Любые идеи поощряются. Спасибо.


person NovaJoe    schedule 29.11.2012    source источник


Ответы (1)


Догадаться. В то время, когда я пытался получить ссылку на свой оригинальный UIWindow, присутствовала пара дополнительных UIWindow. Я использовал свойство KeyWindow, чтобы попытаться открыть исходное окно. Но KeyWindow не был тем UIWindow, каким я ожидал. У меня был активен счетчик загрузки, поэтому окно было типа _UIAlertNormalizingOverlayWindow. Итак, теперь я вызываю индекс 0 массива Windows вместо этого, который ДЕЙСТВИТЕЛЬНО получает мое главное окно приложения. Затем я смог вызвать MakeKeyAndVisible в правильном UIWindow.

По какой-то причине вызов MakeKeyAndVisible в неправильном окне вызвал некоторую странность, которая, казалось, скрывала UITextEffectsWindow, который представляет собой тип окна, который iOS использует для отображения курсоров в текстовых полях и т. Д.

Итак, я усвоил урок: никогда не предполагайте, какой экземпляр массива Windows вы получите при доступе к свойству KeyWindow.

person NovaJoe    schedule 01.12.2012