Какао: различить устройство ввода / колесо прокрутки: как колесо прокрутки мыши и трекпад - PullRequest
1 голос
/ 07 марта 2011

Я ищу способ надежного различения в пределах [NSResponder scrollWheel:], если пользовательское устройство ввода имеет одномерное колесо прокрутки или двухмерный trackPad / magicMouse?

В первом я хотел бы реализовать другое поведение. Но просто взглянуть на deltaX NSEvent было бы немного слабым. Есть предложения?

Ответы [ 2 ]

3 голосов
/ 10 июня 2014

Использовать подтип события:

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

Это будет работать даже при отключенной инерционной прокрутке.

0 голосов
/ 25 апреля 2011

Вы можете использовать закрытый вызов метода [theEvent _scrollPhase], чтобы узнать, использует ли устройство инерциальную прокрутку, что указывает на устройство ввода, поставляемое Apple.(Примечание: это не будет работать, если пользователь отключил инерционную прокрутку)

...