Macos nEvent和魔法鼠标

Macos nEvent和魔法鼠标,macos,osx-lion,mouse,trackpad,Macos,Osx Lion,Mouse,Trackpad,如何区分事件-(void)scrollWheel:(NSEvent*)事件是由魔术鼠标还是轨迹板触发的 我问这个问题的原因是,我想在使用触控板时为滚动事件指定一个不同的动作,因为用户可以通过按压来缩放触控板。然而,在神奇鼠标上,用户不能轻易地捏,所以我想用滚动功能代替捏 我可以用这条线区分普通鼠标和魔法鼠标: if (([event momentumPhase] != NSEventPhaseNone) || [event phase] != NSEventPhaseNone) 但是,trac

如何区分事件
-(void)scrollWheel:(NSEvent*)事件是由魔术鼠标还是轨迹板触发的

我问这个问题的原因是,我想在使用触控板时为滚动事件指定一个不同的动作,因为用户可以通过按压来缩放触控板。然而,在神奇鼠标上,用户不能轻易地捏,所以我想用滚动功能代替捏

我可以用这条线区分普通鼠标和魔法鼠标:

if (([event momentumPhase] != NSEventPhaseNone) || [event phase] != NSEventPhaseNone)

但是,trackpad和Magic Mouse都通过了此测试。

我能够区分鼠标上的滚轮(不是Magic Mouse,但我怀疑它仍然可以工作)和使用NSEvent子类型的trackpad:

enum {
   NSMouseEventSubtype           = NX_SUBTYPE_DEFAULT,
   NSTabletPointEventSubtype     = NX_SUBTYPE_TABLET_POINT,
   NSTabletProximityEventSubtype = NX_SUBTYPE_TABLET_PROXIMITY
   NSTouchEventSubtype             = NX_SUBTYPE_MOUSE_TOUCH
};

您应该为神奇鼠标处理
滚轮
,并为轨迹板上的捏捏手势添加
nsmabilizegesturecognizer
。两者并不冲突,但触摸板上的滑动滚动将触发
滚轮

我认为这不适用于Magic Mouse-它与触摸板具有相同的子类型。你明白了吗?在scrollWheel中,似乎无法确定事件是来自轨迹板还是魔法鼠标。