2010-10-05 110 views
1

我试图让我的iPad应用程序通过VGA电缆将应用程序的屏幕镜像到辅助屏幕。由于性能问题,我只想让我的视图显示在辅助屏幕上,但仍然通过iPad的屏幕捕捉触摸事件。将触摸事件传递给UIViewController的视图

我当前方法是具有两个UIWindows:一个用于将VGA连接屏幕,其中显示所有的视图,动画等,并且另一个的UIWindow为iPad屏幕捕捉触摸事件。这在工作方面非常出色,我可以记录在iPad屏幕上接收到的触摸事件。

但由于某种原因,我无法将touchesBegan:,touchesEnded:等方法传递给我的UIViewControllers并让它们正确反应。如果我直接将其发送至UIViewController我可以通过覆盖在UIViewController触摸事件,捕捉它们,但这只是对后台捕捉触摸,而不适用于添加到UIViewController按钮等有用。

然后我尝试将触摸事件发送到viewController.view,并且它们在其他地方消失。我甚至尝试循环视图控制器中的每个子视图,但仍然没有骰子。

我必须错过简单的东西,任何想法?

回答

2

我也有过这个问题。你的问题可以很简单地解决。 你可以只覆盖了UIView的则hitTest方法,像这样:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent*)event 
{ 
    return [[[[UIApplication sharedApplication] delegate] secondWindow] hitTest:point withEvent:event]; 
} 

,你可以触摸事件传递给其他视图。 我的问题比你的更难。我想“复制”事件,而不是“传递”它。有谁知道如何做到这一点?