通过 Swift 在 MacOS 中访问键盘设置

Accessing keyboard settings in MacOS via Swift

这就是我想要做的事情:

我想构建一个小应用程序,在 MacOS 的顶部栏中放置一个图标。单击此图标时,应切换设置 "System Preferences > Keyboard > Use keys F1, F2, ... as standard function keys"。所以它基本上像 Caffeine 一样工作,只是用于不同的设置。

这是我目前的代码(还在测试阶段):

class AppDelegate: NSObject, NSApplicationDelegate {

    func test() {
        let defaults = NSUserDefaults.standardUserDefaults().dictionaryRepresentation()

        for value in defaults.keys {
            print(value + " - " + String(defaults[value]))
        }

    }

    func applicationDidFinishLaunching(aNotification: NSNotification) {
        test()
    }
}

目前的想法是获取 NSUserDefaults 并大致了解其中存储的所有键和值。这是我的问题:我怎么知道我需要哪个键来访问我想要的设置?我找不到任何包含 "keyboard" 的键(我希望看到像 "com.apple.keyboard.*" 这样的键)。 我没有找到任何文档涵盖访问某些设置的可能键的范围。

如果有人能帮助我,我将不胜感激!

谢谢,祝你有美好的一天!

嗯,具有讽刺意味的是,我在发布问题后几分钟就发现了它,但这也许可以帮助人们找到其他密钥来访问某些设置。

首先,我要找的关键是 "com.apple.keyboard.fnState"

现在,您可以通过以下方式找到所需的密钥:

在访问 NSUserDefaults 之前,请确保至少更改一次您尝试操作的设置。这样您可以保证此设置的条目将写入 NSUserDefaults。这正是我找不到密钥的原因,因为我从未触及此设置(考虑到我要实现的目标,这可能被视为愚蠢,但这取决于您...)。

旁注:我仍然认为 Apple 没有任何涉及此主题的文档令人遗憾。

希望这对其他人有帮助!