在Cocoa中检查Caps Lock的状态

时间:2009-02-14 01:38:09

标签: cocoa

行。我正在开始我的第一个OS X应用程序。我没有做一些明显或简单的事情,而是直接进入系统。

我想在菜单栏中放置一个大写锁定指示器。在C#或Delphi(我的主要语言)中,这是相当微不足道的。在Mac OS X中,我不确定从哪里开始。当然我已经下载了Xcode并编写了一些没什么风格的应用程序。现在我需要编写一个将在开始时运行的应用程序,只有一个菜单栏组件,然后工作。

有我的背景。如何在Cocoa中获取大写锁定键的状态?

1 个答案:

答案 0 :(得分:6)

在开始时运行:由用户决定。如果他们希望它在启动时运行,他们会将它放在登录项中。您可以添加一个按钮,将其自动添加到登录项目中;使用Launch Services的共享文件列表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事件点击来监控大写锁定,但它不是每个键盘,所以我不确定你会得到多个键盘的可靠结果,它仍然不会让你阅读应用程序启动时大写锁定键的初始状态。