自定义UIWindow方向

时间:2010-07-28 13:56:37

标签: iphone uiwindow

我需要在我的窗口看到触摸事件,所以我将UIWindow子类化为MYWindow类。我重写了sentEvent函数来接收窗口上的触摸事件,所有这些都正常工作。我做了以下工作来实现这一目标:

self.window = [[MYWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[window makeKeyAndVisible];

我面临的问题是,当我这样做时,此窗口上的viewControllers将不再旋转。如果我使用常规的UIWindow,它们的工作方式就像我打算让它们工作一样。显然,我的设置有问题。

我正在查看UIWindow头文件,并且有一个名为

的方法
- (void)becomeKeyWindow;  //override point for subclass, Do Not call directly

我想在我的自定义UIWindow类中实现这个,就像我必须实现sendEvent:方法一样?请指出我正确的方向。

先谢谢你们。

2 个答案:

答案 0 :(得分:4)

我弄清楚问题是什么。我在自定义窗口上创建了一个委托,并将其称为“委托”,这导致了问题。将其命名为“aDelegate”解决了这个问题。谢谢你的帮助。

答案 1 :(得分:0)

我只是在这里猜测,但我认为这是因为你现在将MYWindow作为关键窗口(即使它是透明的)并且shouldAutorotateToInterfaceOrientation:UIViewController的一部分class,而不是UIWindow

所以即使你可以看到你的其他观点,他们也不会再调用他们的旋转事件了。

为什么不在UIWindow上实现那些需要处理触摸事件的视图中添加的触摸事件,而不是将其作为UIView子类?您也可以将其设为透明,并将旋转处理为UIViewController级别?