在我的应用程序中,我希望滚动发生,仅通过鼠标滚轮操作,而不是通过触控板上的两个手指手势。基本上,我试图确定 scrollWheelEvent 是否是从鼠标或触控板内部生成的 - (void)scrollWheel:(NSEvent *)theEvent 方法。据我目前所知,似乎没有直接的方法来实现这一点。
我尝试了在 -(void)beginGestureWithEvent:(NSEvent *)event; 内将布尔变量设置为 true 和 false 的解决方法;和 -(void)endGestureWithEvent:(NSEvent *)event; 但这不是解决方案,因为在调用 endGestureWithEvent: 方法之后,scrollWheel: 方法被多次调用。
这是我的代码:
$BOOL fromTrackPad = NO;
-(void)beginGestureWithEvent:(NSEvent *)event;
{
fromTrackPad = YES;
}
-(void) endGestureWithEvent:(NSEvent *)event;
{
fromTrackPad = NO;
}
- (void)scrollWheel:(NSEvent *)theEvent
{
if(!fromTrackPad)
{
//then do scrolling
}
else
{
//then don't scroll
}
}
我知道这是不标准的,但这是我的要求。有谁知道这样做的方法?谢谢!