首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Carbon -获取CopySymbolicHotkeys标签?

Carbon -获取CopySymbolicHotkeys标签?
EN

Stack Overflow用户
提问于 2016-03-17 02:34:01
回答 1查看 135关注 0票数 6

This answer about CopySymbolicKeys()为你提供了OS X系统快捷键的键盘组合,但有没有办法获得与这些组合相关的标签呢?

例如,我可以从CopySymbolicKeys()获取⌥⌘D,但我想在系统偏好设置>键盘>快捷键中获取“打开/关闭Dock隐藏”及其相关标签。

我认为这不太可能,但请保持希望。

EN

回答 1

Stack Overflow用户

发布于 2020-12-25 01:50:56

据我所知,没有这样的API,但可以重建你想要的东西,但这需要你做一些工作。

您可以在此处获取符号键的名称:

代码语言:javascript
复制
/System/Library/PreferencePanes/Keyboard.prefPane/Contents/Resources/en.lproj/DefaultShortcutsTable.xml

您需要解析此XML文件,然后在此处找到对应的热键:

代码语言:javascript
复制
~/Library/Preferences/com.apple.symbolichotkeys.plist

必须在关键字sybmolichotkey之间进行匹配(是的,关键字拼写错误!)在前面提到的XML文件中,名为key的密钥在后面的plist文件中包含相同的数字。

取自DefaultShortcutsTable.xml文件的示例:

代码语言:javascript
复制
<dict>
        <key>name</key>
        <string>DO_NOT_LOCALIZE: Dashboard and Dock</string>
        <key>ax_description</key>
        <string>DO_NOT_LOCALIZE: Dashboard and Dock shortcuts (AX_DESCRIPTION)</string>
        <key>identifier</key>
        <string>dock</string>
        <key>iconname</key>
        <string>category_dock</string>
        <key>icon-bundle-path</key>
        <string>/System/Library/CoreServices/Dock.app</string>
        <key>canRestoreDefaults</key>
        <true/>
        <key>elements</key>
        <array>
            <dict>
                <key>name</key>
                <string>DO_NOT_LOCALIZE: Turn Dock Hiding On/Off</string>
                <key>key</key>
                <integer>2</integer>
                <key>modifier</key>
                <integer>1572864</integer>
                <key>sybmolichotkey</key>  <--- look for this key
                <integer>52</integer>      <--- and its value
                <key>charKey</key>
                <integer>100</integer>
            </dict>
            <dict>
                <key>name</key>
                <string>DO_NOT_LOCALIZE: Show Launchpad</string>
                <key>key</key>
                <integer>65535</integer>
                <key>modifier</key>
                <integer>0</integer>
                <key>sybmolichotkey</key>  <--- look for this key
                <integer>160</integer>     <--- and its value
            </dict>
        </array>
    </dict>

然后在com.apple.symbolichotkeys.plist中查找相同的数字

代码语言:javascript
复制
    <key>52</key>
    <dict>
        <key>enabled</key>
        <true/>
        <key>value</key>
        <dict>
            <key>parameters</key>
            <array>
                <integer>65535</integer>
                <integer>2</integer>
                <integer>1572864</integer>
            </array>
            <key>type</key>
            <string>standard</string>
        </dict>
    </dict>

主要注意事项:后一个plist是二进制形式的。要将其转换为文本,您需要在终端中执行以下操作:

代码语言:javascript
复制
plutil -convert xml1 ~/Library/Preferences/com.apple.symbolichotkeys.plist 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36044178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档