2011-04-26 67 views
2

我創建了NSStatusItem,並且我在界面生成器(Xcode 4.0)中分配了兩個等價鍵。這些用於首選項菜單cmd-和退出選項cmd-q。當菜單被突出顯示/打開時,這兩個功能都可以工作,但即使應用程序是最重要的,它也不會起作用。任何想法,爲什麼發生這種情況或我可以改變這種情況?菜單中的可可等價鍵不起作用

回答

2

操作系統將不處理的關鍵事件傳遞給前端應用程序,前端應用程序將其與主菜單和當前窗口中的任何關鍵等價物進行比較。它們不會與狀態欄中的項目進行比較,並且由於狀態欄實際上是一個不同的應用程序,因此您的應用程序位於前臺並不重要。當你打開菜單時,它是關注的窗口。這就是它在這種情況下的原因。

由於狀態項僅在菜單處於打開狀態時處於活動狀態,所以您需要使用其他兩種方法之一來獲取等價關鍵字。第一種較新的方法是使用event taps。我從來沒有使用過這個,所以我不能建議如何設置它。另一個較老的選項是使用熱鍵。這種方法可能在未來不受支持,但如果您有興趣,我在this answer中發佈了一個示例。

+0

對不起,讓我澄清,如果它有任何區別。我的應用程序只是一個NSStatusItem,沒有其他主菜單或窗口。如果是這種情況,我怎麼能把它設置爲重點。 – 2011-04-26 02:39:55

+0

你不能,但沒關係。狀態欄是一個不同的應用程序,只有當您打開菜單時纔會處於焦點狀態。我發現這個不完整的同時找到一個鏈接的實際解決方案,但我現在發現它,所以我會將它添加到帖子。 – ughoavgfhw 2011-04-26 02:44:40

+0

謝謝,我沒有爲主菜單設置關鍵等價物,只是爲了NSStatusItem。 – 2011-04-30 00:35:11

-1

我的猜測:您的NSMenu不在響應者鏈中。如果你能弄清楚如何在那裏得到它,你可能會得到這個工作。