2013-01-22 59 views
1

如何辨别事件-(void)scrollWheel:(NSEvent *)event是由Magic Mouse还是触控板触发的?NSEvent和Magic Mouse

我问这个问题的原因是因为当使用触控板时,我想为滚动事件分配一个不同的动作,因为用户可以捏合以放大触控板。然而,在神奇的鼠标上,用户不能轻易捏,所以我想用滚动功能代替捏。

我可以正常小鼠和魔术鼠标使用这条线之间进行区分:

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

但是该测试通过两者,触控板和魔术鼠标。

回答

3

我能够鼠标上的滚轮来区分(不是魔术鼠标,但我怀疑它仍然会工作),并使用NSEvent的亚型触控板:

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

我不认为这作品对于Magic Mouse - 它具有与跟踪板相同的子类型。 –