2013-01-22 56 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 - 它具有與跟蹤板相同的子類型。 –