2013-07-24 12 views
3

我有一個UIWebView,我想檢測它的任何接觸。 (我不想使用UITapGsture或任何其他東西)UITouch返回UIWebBrowserView(Apple內部組件)而不是UIWebView

我正在使用sendAvent:UIApplication的方法爲此目的 並檢查觸摸對象是否包含webview。

令人驚訝的是它指向了UIWebBrowserView。我必須檢查它的超級瀏覽器來獲取瀏覽器,但它使我的代碼非常低效,因爲每次用戶點擊時都會調用sendEvent。

代碼段:

 

- (void)sendEvent:(UIEvent *)event { 
    [super sendEvent:event]; 

    NSSet *touches = [event allTouches]; 
    if (touches.count != 1) 
     return; 
    UITouch *touch = touches.anyObject 

    if([touch.view isKindOfClass:[UIWebView class]]){ // This fails 

    } 
} 

我想知道有沒有辦法讓UITouch回報的WebView作爲一個對象,而不是返回它的子視圖就像UIPdfView或UIWebBrowser看法?

+0

請提問。 – Jeff

回答

3

我終於找到了解決這個:

我們必須使用:

 
if([touch.view isMemberOfClass:[UIWebView class]]){ // This Works 

} 

代替:

 
if([touch.view isKindOfClass:[UIWebView class]]){ // This fails 

} 
+0

沒有爲我工作:/ – dooleyo

+0

@dooleyo你可以NSLog的事件的描述,可能會幫助你弄清楚。 –