Полноэкранное объявление, при котором клавиатура не отображается - PullRequest
0 голосов
/ 21 февраля 2012

В моем приложении для iOS иногда при запуске отображается полноэкранное объявление Greystripe.Если это объявление показывается, тогда, когда я его отклоню, позже я коснусь текстового поля в UIWebView, но клавиатура не будет отображаться.Однако, если объявление Greystripe НЕ появляется, то все в порядке, и клавиатура будет отображаться, как и ожидалось.

После некоторых исследований я думаю, что это как-то связано с Greystripe, который делает себя первым респондентом, ноЯ не уверен, как это исправить.

Редактировать: Я использую adwhirl и поэтому, чтобы получить стартовое объявление, я делаю именно так, как здесь: http://wiki.greystripe.com/index.php/AdWhirl

UIWebView находится внутри другого контроллера, который представлен с presentModalViewController:animated: на главном экране.

Я сузил проблему: проблема возникает после запуска Greystripe, который возникает либо из полноэкранного запуска объявления, которое яинициировать вручную или автоматически из AdWhirl, чтобы отобразить баннер Greystripe размером 320x50.

1 Ответ

1 голос
/ 21 февраля 2012

После часов отладки я наконец понял это. Я использую SVProgressHUD, чтобы показать состояние загрузки, пока загружается мой UIWebView. SVProgressHUD.m делает себя ключевым окном, затем, когда оно закрывается, возвращает статус ключевого окна в самое верхнее окно. По какой-то причине Greystripe, в отличие от всех других рекламных сетей, которые я использую, делает себя самым верхним окном. Таким образом, проблема может заключаться в том, что Greystripe делает себя слишком важным, или SVProgressHUD неправильно вычисляет самое верхнее окно!

Чтобы решить эту проблему, я должен был вручную сделать свой контроллер вида, который содержит мой UIWebView, ключевым окном каждый раз после закрытия SVProgressHUD:

[SVProgressHUD dismiss];
[self.view.window makeKeyWindow];
...