2010-10-05 105 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]; 
} 

,你可以觸摸事件傳遞給其他視圖。 我的問題比你的更難。我想「複製」事件,而不是「傳遞」它。有誰知道如何做到這一點?