3

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

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

我面临的问题是,当我这样做时,此窗口上的视图控制器将不再旋转。如果我要使用常规的 UIWindow,它们都会像我想要的那样工作。显然,我的设置有问题。

我正在查看 UIWindow 头文件,有一个方法叫做

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

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

提前谢谢各位。

4

2 回答 2

4

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

于 2010-07-29T01:23:23.417 回答
0

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

因此,即使您可以看到其他视图,它们也不会再调用它们的轮换事件。

与其将其设为UIWindow子类,不如UIView在添加到需要处理触摸事件的视图中实现那些触摸事件?您也可以使其透明,并保持在UIViewController水平上处理旋转?

于 2010-07-28T14:40:45.187 回答