2010-07-22 3 views
2

- (void) касается: бит (NSSet *) касается объекта: (UIEvent *) событие { NSLog (@ "касается"); }touchsBegan не отвечает

Указанный выше метод не вызывается в моих приложениях. Описание моего приложения соответствует.

У меня есть MainViewController, который загружает ContentViewController. ContentViewController имеет веб-просмотр, который загружает PDF-файл.

Как прослушивать отвод MainViewController's Вид.

С уважением.

+0

Этого ответа является полезным: HTTP : //stackoverflow.com/a/7808238/790198 – Nianliang

ответ

3

Я не могу быть точным здесь на 100%, но если вы разместите -touchesBegan:withEvent: в своем контроллере (или его главном представлении), то вы получите только те касания, которые не обрабатывались некоторыми подзонами в иерархии представлений. Для того, чтобы перехватывать все штрихи, вы должны использовать UIView подкласс для вашего зрения контроллера и переопределить hitTest:withEvent: метод в нем:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 
    touchedView = [super hitTest:point withEvent:event]; 
    NSSet* touches = [event allTouches]; 
    // handle touches if you need 
    return touchedView; 
} 

Для получения дополнительной информации см Event delivery раздела в «Обработку событий руководства» для прошивки

+1

Обновленный ответ со ссылкой на объяснение обработки событий в документах Apple - кажется, он подтверждает мой ответ – Vladimir

+0

Я сделал это. Работает. Но теперь UIWebView перестает работать. – TechBee

+1

Что не работает точно? Вы возвращаете правильный вид из метода hitTest? – Vladimir

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