2010-01-25 28 views
13

我想爲我的應用程序創建一個全局快捷方式。我已經使用addGlobalMonitorForEventsMatchingMask方法做了這個很酷的新方法。問題是,我的事件沒有被「消耗」:我的快捷方式包括空格鍵,所以無論何時使用快捷方式,當我在Finder中時都會彈出Quicklook。可可全球快捷方式?

我該如何防止這種情況發生?我知道這是可能的,因爲許多應用程序,例如Bowtie iTunes控制器應用程序都可以。

回答

10

addGlobalMonitorForEventsMatchingMask:由於種種原因不適合替代現有的Carbon Hotkey API;這是非常低效的,並從文檔:

...你只能觀察事件;您無法修改或以其他方式阻止將事件傳遞到其原始目標應用程序。

重點相關的事件可能只有在可訪問啓用或監控,如果您的應用程序是值得信賴的無障礙訪問

熱鍵API仍然是實現的唯一途徑OS X中的全局快捷方式。但與許多Carbon API不同,Hotkey API可用於64位應用程序。

+0

謝謝!正是我在找的! – Alice 2010-01-25 20:21:02

7

使用hotkey API,這是爲此目的。

+0

否可可方式這樣做? – Alice 2010-01-25 19:59:42

+0

據我所知,這是唯一的全球熱鍵API。如果您不喜歡查看函數調用或其他東西,請隨意編寫一個包裝HIToolbox調用的Objective-C方法。 – Chuck 2010-01-25 20:06:34

+0

是的,我會這樣做,然後... – Alice 2010-01-25 20:15:48