【问题标题】:Checking state of Caps Lock in Cocoa检查 Cocoa 中 Caps Lock 的状态
【发布时间】:2009-02-17 07:41:49
【问题描述】:

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

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

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

【问题讨论】:

    标签: cocoa


    【解决方案1】:

    启动时运行:由用户决定。如果他们希望它在启动时运行,他们会将其放入登录项中。您可以添加一个按钮以将其自动添加到登录项;使用 Launch Services 的 Shared File List API 将其添加到 Session Login Items 列表中。

    菜单栏项:这称为状态项。请参阅 NSStatusItem。

    检查大写锁定:首先,可能有多个键盘,其中大多数都有大写锁定,并非所有键盘都具有相同的大写锁定状态(用户可能有一个打开,一个有它关闭,第三个根本没有大写锁定键)。分别注意每个键盘的大写锁定状态,如果有大写锁定键打开,指示灯会亮起。

    要读取和监控大写锁定键,您需要使用 I/O Kit。我相信你需要使用the HID Manager。这是一个 C API,但 Dave Dribin 编写了 an Objective-C wrapper for its lower-level predecessor(最近在 1.0.1)。

    编辑添加:您可以使用 Quartz 事件点击来监控大写锁定,但它不是每个键盘的,所以我不确定您是否会使用多个键盘获得可靠的结果,它仍然不会让您阅读应用启动时大写锁定键的初始状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 2021-02-22
      相关资源
      最近更新 更多