2009-02-14 57 views
3

OK。我開始我的第一個OS X應用程序。我沒有做明顯或簡單的事情,而是直接參與系統工作。檢查Cocoa中Caps Lock的狀態

我想在菜單欄中放置大寫鎖定指示器。在C#或Delphi(我的主要語言)中,這是相當平凡的。在Mac OS X中,我不確定從哪裏開始。當然,我已經下載了Xcode並編寫了幾個沒有風格的應用程序。現在我需要編寫一個將在開始時運行的應用程序,只有一個菜單欄組件,並且工作。

有我的背景。我如何獲得Cocoa中大寫鎖定鍵的狀態?

回答

6

開始運行:直到用戶。如果他們希望它在開始時運行,它們會將其放入登錄項目中。您可以添加一個按鈕將其自動添加到登錄項目中;使用啓動服務的共享文件列表API將其添加到會話登錄項目列表中。

菜單欄項目:這稱爲狀態項目。請參閱NSStatusItem。

檢查大寫鎖定:首先,可能會有多個鍵盤,其中大部分都會有大寫鎖定,並不是所有大小都會具有相同的大寫鎖定狀態(用戶可能有一個大寫鎖定狀態,與它關閉,第三沒有大寫鎖定鍵)。請分別注意每個鍵盤的大寫鎖定狀態,並在大寫鎖定鍵處於打開狀態時點亮指示燈。

要閱讀並監控大寫鎖定鍵,您需要進入I/O Kit。我相信你需要使用the HID Manager。這是一個C API,但Dave Dribin寫了an Objective-C wrapper for its lower-level predecessor(最近在1.0.1)。

編輯添加:您可以使用Quartz事件點擊來監視大寫鎖定,但它不是每個鍵盤,所以我不確定您會使用多個鍵盤獲得可靠的結果,但它仍不會讓您讀取應用程序啓動時大寫鎖定鍵的初始狀態。