2013-07-24 3 views
3

У меня есть UIWebView, и я хочу обнаружить любое касание этого. (Я не хочу использовать UITapGsture или любую другую вещь)UITouch возвращает UIWebBrowserView (внутренний компонент Apple) вместо UIWebView

Я использую sendEvent: метод UIApplication для этой цели и проверьте, содержит ли сенсорный объект веб-просмотр.

Удивительно, но это указывает на 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 описание события, которое может помочь вам разобраться. –

Смежные вопросы