2012-02-20 5 views
0

iOS 앱이 시작시 Greystripe 전체 화면 광고를 표시하는 경우가 있습니다. 이 광고가 표시되면 내가 닫을 때 나중에 UIWebView에서 텍스트 필드를 탭하지만 키보드가 나타나지 않습니다. 그러나 Greystripe 광고가 나타나지 않으면 모든 것이 정상이며 키보드가 예상대로 표시됩니다.전체 화면 광고로 인해 키보드가 나타나지 않습니다.

몇 가지 연구를 한 후 Greystripe이 첫 번째 응답자가되는 것과 관련이 있다고 생각하지만이 문제를 해결할 방법이 확실하지 않습니다.

편집 : 내가 애드 월을 사용하고 여기에 말한대로 내가 정확히 어떻게 시작 광고를 얻기 위해 다음의 UIWebView는 기본보기에서 presentModalViewController:animated:되게되어 다른 컨트롤러 내부에 http://wiki.greystripe.com/index.php/AdWhirl

합니다.

나는 문제를 줄였습니다. 수동으로 시작하는 전체 화면 시작 광고에서 발생하거나 AdWhirl에서 320x50 Greystripe 배너를 표시하기 위해 자동으로 시작하는 Greystripe를 시작한 후에 문제가 발생했습니다.

+0

, 우리가 알아낼 수 있습니다

는이 문제를 해결하기 위해, 나는 수동으로 SVProgressHUD가 기각 후 키 윈도우 내있는 UIWebView마다 포함되어 내보기 컨트롤러를했습니다 무슨 일 이니? 귀하의 광고를 귀하의'UIWindow' (키보드가 사용하는 것)의 특정 하위 뷰에 추가하는 것으로 의심됩니다. 또한, 광고를 구현하는 데 사용하는 코드를 게시 할 수도 있습니다. – fscheidl

+0

Greystripe 광고는'[GSAdEngine displayFullScreenAdForSlotNamed : @ "gsFullScreen"]'을 통해 호출되지만 Greystripe 배너 광고를 표시 할 때 Adwhirl이 Greystripe를 시작하면 문제가 발생합니다 (위의 수정 참조). – user1221973

답변

1

디버깅 시간이 지나면 마침내 알아 냈습니다. 내 UIWebView가로드되는 동안 SVProgressHUD를 사용하여로드 상태를 표시합니다. SVProgressHUD.m 자체가 키 윈도우가되며, 해지되면 키 윈도우 상태가 "최상위"창으로 반환됩니다. Greystripe은 내가 사용하고있는 다른 모든 광고 네트워크와 달리 자체적으로 최상위 창을 만듭니다. 그래서 문제는 Greystripe 자체가 너무 중요하거나 SVProgressHUD가 맨 위 창을 오산 할 수 있습니다! 당신이 당신의 제안 뷰 계층 구조를 설명하면

[SVProgressHUD dismiss]; 
[self.view.window makeKeyWindow]; 
관련 문제