3

-(void)scrollWheel:(NSEvent *)eventイベントが Magic Mouse によってトリガーされたのか、トラックパッドによってトリガーされたのかを区別するにはどうすればよいですか?

この質問をしている理由は、ユーザーがトラックパッドでピンチしてズームできるため、トラックパッドを使用するときにスクロール イベントに別のアクションを割り当てたいからです。ただ、マジックマウスではピンチがなかなかできないので、ピンチ代わりにスクロール機能を使いたい。

次の行を使用して、通常のマウスと Magic Mouse を区別できます。

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

ただし、このテストは、トラックパッドと Magic Mouse の両方で合格です。

4

2 に答える 2

3

NSEvent のサブタイプを使用して、マウスのスクロール ホイール (Magic Mouse ではありませんが、まだ動作すると思われます) とトラックパッドを区別できました。

enum {
   NSMouseEventSubtype           = NX_SUBTYPE_DEFAULT,
   NSTabletPointEventSubtype     = NX_SUBTYPE_TABLET_POINT,
   NSTabletProximityEventSubtype = NX_SUBTYPE_TABLET_PROXIMITY
   NSTouchEventSubtype             = NX_SUBTYPE_MOUSE_TOUCH
};
于 2014-06-10T00:15:18.073 に答える