touchesBegan没有回应

时间:2010-07-22 08:27:25

标签: objective-c

- (void)touchesBegan:(NSSet *)触及withEvent:(UIEvent *)事件     {         NSLog(@“触动”);     }

上述方法未在我的应用中调用。我的申请说明如下。

我有MainViewController,其中加载ContentViewControllerContentViewController有一个加载pdf文件的webview。

如何倾听MainViewController's查看。

问候。

1 个答案:

答案 0 :(得分: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;
}

有关详细信息,请参阅iOS“事件处理指南”中的Event delivery部分