Какао: Среднее событие щелчка мыши (глобальное) + API жестов?

Есть ли какие-либо ресурсы, которые могут помочь мне в том, как заставить мое приложение реагировать на любой тип щелчка мышью, который не является левой / правой кнопкой? Глобально, даже когда мое приложение не активно.

И для волшебной мыши / трекпада, есть ли какие-либо рамки или ресурсы, доступные, чтобы легко прикрепить мой код к определенному жесту?

2 ответа

Решение

Вы можете найти все, что связано с событиями мыши: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/EventOverview/HandlingMouseEvents/HandlingMouseEvents.html.

и события трекпада: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/EventOverview/HandlingTouchEvents/HandlingTouchEvents.html#//apple_ref/doc/uid/10000060i-CH13-SW10

Вот ссылка переполнения стека, которая имеет объяснение для обработки глобальных событий.

Вот пример кода, основанный на (очень полезном) ответе Шашанка.

NSEventMask eventMask = NSOtherMouseDownMask|NSOtherMouseUpMask;
[NSEvent addGlobalMonitorForEventsMatchingMask:eventMask
       handler:^(NSEvent *event) {
           if (event.type == NSOtherMouseDown) {
               NSLog(@"middle click down");
           } else if (event.type == NSOtherMouseUp) {
               NSLog(@"middle click up");
           }
       }];
Другие вопросы по тегам