[NSResponder scrollWheel:]
ユーザーの入力デバイスに1次元のスクロールホイールまたは2次元のトラックパッド/マジックマウスがあるかどうかを確実に区別する方法を探していますか?
最初に、別の動作を実装したいと思います。しかし、 の deltaX を見るだけでNSEvent
は少し弱いでしょう。助言がありますか?
[NSResponder scrollWheel:]
ユーザーの入力デバイスに1次元のスクロールホイールまたは2次元のトラックパッド/マジックマウスがあるかどうかを確実に区別する方法を探していますか?
最初に、別の動作を実装したいと思います。しかし、 の deltaX を見るだけでNSEvent
は少し弱いでしょう。助言がありますか?
イベントのサブタイプを使用します。
enum {
NSMouseEventSubtype = NX_SUBTYPE_DEFAULT,
NSTabletPointEventSubtype = NX_SUBTYPE_TABLET_POINT,
NSTabletProximityEventSubtype = NX_SUBTYPE_TABLET_PROXIMITY
NSTouchEventSubtype = NX_SUBTYPE_MOUSE_TOUCH
};
これは、慣性スクロールが無効になっていても機能します。
プライベートメソッド呼び出し[theEvent _scrollPhase]
を使用して、デバイスが慣性スクロールを使用しているかどうかを確認できます。これは、Appleが提供する入力デバイスを示します。(注:ユーザーが慣性スクロールを無効にしている場合、これは機能しません)