【问题标题】:keyWindow = nil only on iPadkeyWindow = nil 仅在 iPad 上
【发布时间】:2012-08-23 22:40:10
【问题描述】:

我在 iPad 上的应用程序 keyWindow 出现问题。

我为 iPhone 设计了我的应用程序,后来通过设置设备系列和为 iPad 添加新的故事板添加了对 iPad 的支持。 到目前为止一切都很好,我可以在 ipad 上打开应用程序,甚至显示我为 iPad 定制的界面。

现在问题来了: 我不知道为什么,但我的应用程序的 iPad 版本没有 keyWindow。 我需要它,因为我在开始时会显示一个加载对话框,应该锁定屏幕以进行用户交互,所以我将它添加到主窗口。在 iPhone 上这工作正常。

我发现“[UIApplication sharedApplication].keyWindow”给了我null,但只在iPad上,而“[[UIApplication sharedApplication].windows objectForKey:0]”给了我窗口对象,它当然必须存在,因为该应用程序显示了完整的用户界面。

ipad 和 iphone 的源文件当然是一模一样的,但是我想我后来添加 iPad 支持的时候漏掉了什么……

我已经尝试将应用程序委托中的窗口对象手动设置为 makeKeyAndVisible,但没有成功。 ([self.window makeKeyAndVisible];)

有没有人知道我必须做些什么才能使它正常工作?

亲切的问候

【问题讨论】:

标签: ios ipad uiwindow uiapplication keywindow


【解决方案1】:

好的,我自己解决了。 我必须将 makeKeyAndVisible 方法应用于我想作为 keyWindow 访问它的主窗口。我不知道为什么它在 Application Delegate 中不起作用,或者为什么我必须为 iPad 而不是 iPhone 手动设置它,但它现在可以工作了。

如果有人知道为什么,请随时启发我。

【讨论】:

  • 感谢您的回答,看来如果您不调用 makeKeyAndVisible [UIApplication sharedApplication].keyWindow 返回 nil...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-26
  • 1970-01-01
相关资源
最近更新 更多