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中,似乎无法确定事件是来自轨迹板还是魔法鼠标。