Cocoa:区分输入设备/ scrollWheel:鼠标滚轮和TrackPad

时间:2011-03-07 09:00:05

标签: objective-c cocoa macos appkit

如果用户输入设备有一维滚轮或二维trackPad / magicMouse,我正在寻找一种可以在[NSResponder scrollWheel:]内可靠区分的方法吗?

在第一个我想实现不同的行为。 但只是看看NSEvent的deltaX会有点弱。 有什么建议吗?

2 个答案:

答案 0 :(得分:3)

使用活动的子类型:

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

即使禁用惯性滚动,这也能正常工作。

答案 1 :(得分:-1)

您可以使用私有方法调用[theEvent _scrollPhase]来判断设备是否使用惯性滚动,这表示Apple提供的输入设备。 (注意:如果用户禁用了惯性滚动,这将不起作用)