1

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

我目前的方法是使用两个 UIWindows:一个用于连接 VGA 的屏幕,显示所有视图、动画等,另一个用于 iPad 屏幕的 UIWindow,用于捕获触摸事件。这在性能方面效果很好,我可以记录在 iPad 屏幕上收到的触摸事件。

但由于某种原因,我无法将touchesBegan:, touchesEnded:etc 方法传递给我UIViewControllers并让它们做出正确反应。如果我将它直接发送到UIViewController我可以通过覆盖触摸事件来捕获它们,UIViewController但这仅对捕获背景上的触摸有用,而不适用于添加到UIViewController.

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

我一定错过了一些简单的东西,有什么想法吗?

4

1 回答 1

2

我也遇到过这个问题。您的问题可以非常简单地解决。您可以只覆盖 UIView 的 hitTest 方法,如下所示:

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

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

于 2010-11-26T03:39:54.460 回答