我的一个旧应用程序不适用于iOS8。当我启动应用程序,尝试点击任何地方的屏幕时,我会在我的控制台中得到以下消息:
unexpected nil window in _UIApplicationHandleEventFromQueueEvent,
_windowServerHitTestWindow: <UIWindow: 0x7fe4d3e52660; frame = (0 0; 320 568);
opaque = NO; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7fe4d3e2c450>;
layer = <UIWindowLayer: 0x7fe4d3e86a10>>
我用的是一个老式的MainWindow.xib。在MainWindow.xib中是我的窗口对象,以及一个UINavigationController,它的第一个视图控制器也在其中定义。下图显示的是连接到App的插座。
下面屏幕截图中的白色“视图”是UIWindow。右边的视图是UINavigationController (导航条隐藏的),其中定义了第一个ViewController。
我如何解决这个问题,而不重新创建整个应用程序从零到一个新的项目?
编辑:我刚刚发现有一个很小的条形,我的按钮实际上会收到它们的点击/点击。
我还注意到我的self.view.window是零。我要怎么确定那是设置好的?
发布于 2014-09-25 05:48:46
除了B答案之外。还可以看看this answer。
当启动我的景观只有从肖像方向应用程序(也不应该出现在最近打开的应用程序列表,这可以看到通过按两次主页按钮)这个问题。也许,iOS会以某种方式缓存方向和窗口大小)。
我的代码是
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window makeKeyAndVisible];
我为窗口设置了W+H
自动调整掩码,这对我没有帮助,因为窗口不会在旋转时调整大小,但是transform
矩阵会被更改。
解决方案很简单
self.window = [UIWindow new];
[self.window makeKeyAndVisible];
self.window.frame = [[UIScreen mainScreen] bounds];
因此,框架是在窗口从根视图控制器获取其方向后设置的。
发布于 2014-11-14 14:14:10
您不需要添加任何代码来修复这个问题。
打开主xib文件,从左侧找到“窗口”并启用Visible at Launch
和Full Screen at launch
。
发布于 2014-09-22 10:12:46
检查您的窗口nib文件,并确保它占据了整个屏幕。我的应用程序也有类似的问题,触摸事件没有在右边的条状上注册。一旦我把我的MainWindow.xib设置为全屏,我就没有错误了,触摸事件又开始工作了。我的应用程序也显示在景观,但我的MainWindow.xib有肖像尺寸。
https://stackoverflow.com/questions/25963101
复制相似问题