iPhone SDK中用于鼠标向下和向上的手势识别器

我想用手势识别器捕捉鼠标和鼠标。但是,当捕获鼠标时,永远不会捕获鼠标。 这是我做的: 首先创建一个自定义MouseGestureRecognizer:
@implementation MouseGestureRecognizer
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {  
    [super touchesBegan:touches withEvent:event];  
    self.state = UIGestureRecognizerStateRecognized;  
}  

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {  
    [super touchesEnded:touches withEvent:event];  
    self.state = UIGestureRecognizerStateRecognized;  
}  
@end  
然后将识别器绑定到视图控制器中的视图:
UIGestureRecognizer *recognizer = [MouseGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];  
[self.view addGestureRecognizer:recognizer];  
当我在视图中单击鼠标时,会调用touchesBegan,但从不调用touchesEnded。是因为UIGestureRecognizerStateRecognized?     
已邀请:
reset
方法的UIGestureRecognizer类引用:   运行时之后调用此方法(
reset
)   手势识别器状态已经存在   设置为UIGestureRecognizerStateEnded   或UIGestureRecognizerStateRecognized。 (...) 在这之后   调用方法,运行时忽略   所有剩余的积极接触;那是,   手势识别器不接收   进一步更新的触摸   开始但尚未结束。 所以,是的,这是因为你在
touchesBegan
中将状态设置为
UIGestureRecognizerStateRecognized
。 编辑 作为一种解决方法,您可以创建两个识别器,一个用于
touchesBegan
,另一个用于
touchesEnded
,然后将它们添加到目标视图:
UIGestureRecognizer *recognizer1 = [TouchDownGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
UIGestureRecognizer *recognizer2 = [TouchUpGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
[self.view addGestureRecognizer:recognizer1];
[self.view addGestureRecognizer:recognizer2];
    
也许你可以使用
UILongPressGestureRecognizer
而不是
minimumPressDuration
设置为
0
。     

要回复问题请先登录注册