0

我对 UIWindow 进行了子类化,但由于某种原因, - (void)sendEvent:(UIEvent *)event 被调用 2 次以用于与屏幕的任何交互。任何想法为什么会发生这种情况?

4

2 回答 2

2

出于调试目的,子类窗口(应用程序委托)并覆盖 sendEvent: 方法

-(void) sendEvent:(UIEvent *)event
{
    NSLog(@"%@",event);
    [super sendEvent:event];
}

很可能,您会注意到负责 TouchesBegan 和 TouchesEnded(用于点击)的事件。这可以通过子类化 View 并覆盖与触摸相关的方法来测试。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"tocuhesBegan");
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"touchesMoved");
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"touchesEnded");
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"touchesCancelled");
}

此外,尝试在视图上拖动/滑动以注意发送到视图的事件计数的变化:)

于 2012-05-18T00:33:46.177 回答
0

为 fingerDown 和 allFingersUp 调用 sendEvent

于 2012-05-18T00:15:46.717 回答