2014-03-26 79 views
0

我一直在尋找一種方法來攔截應用程序的所有觸摸事件。 我看到了,我可以添加一個手勢識別器的主窗口,並通過使用它的委託方法得到所有的亮點:獲取應用程序的所有觸摸事件

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
NSLog(@"%@",touch); 
return NO; 
} 

這樣,我不傷害其他所有的觸摸事件的應用程序具有的。 問題是,我無法獲得滑動事件以及這種方式。此外,我不能覆蓋UIWindow的sendEvents,因爲我的應用程序是一個外部框架。 我也不想在頂部添加一個透明的UIView。

有沒有其他方法可以滑動和其他gesturs?

+0

看看這個答案http://stackoverflow.com/a/309535/1176219 – Moonkid

回答

0

我設法得到這種通過使用連接到keyWindow自定義手勢識別和使用方法的工作:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES; 
} 

這也給了我所有的接觸,並且不影響任何其他識別器。

如果有誰知道爲什麼我不應該這樣做,我會很高興聽到這個消息。

0

攔截全部觸摸應用的事件,使用UIWindow子類並覆蓋sendEvent:...。每一個觸摸事件都經歷了這種瓶頸方法。被警告說,你現在的操作水平很低,很容易破壞一切。

+0

正如我所說,我不能這樣做,因爲我工作的一個框架。 – Adam