2013-02-20 4 views
2

Есть ли ресурсы, которые могут помочь мне в том, как заставить приложение реагировать на любой щелчок мышью, который не является левой/правой кнопкой? В глобальном масштабе, даже когда мое приложение неактивно.Какао: средний клик мыши (глобальный) + API жестов?

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

ответ

0

Вы можете найти все, что связано с событиями мыши: 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

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

+0

Проблема: у меня нет NSView или NSWindow, событие может произойти в любом активном приложении. – Wesley

+0

Проверьте это http://stackoverflow.com/questions/4752427/osx-detect-system-wide-keydown-events-solved-with-sample-code – Shashank

+0

Спасибо, это именно оно, и в обработчике я просто проверяю [ evt buttonNumber], чтобы найти нужную мне кнопку. – Wesley

0

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

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"); 
      } 
     }];