Mat*_*att 6 macos macos-carbon
This answer aboutCopySymbolicKeys()让您获得 OS X 中系统快捷方式的键盘组合,但有没有办法获得与这些组合关联的标签?
例如,我可以??D从CopySymbolicKeys()但我想获得“打开/关闭 Dock Hiding”,它在“系统偏好设置”>“键盘”>“快捷方式”中的相关标签。
我认为这不太可能,但仍然充满希望。
据我所知,没有 API 可以实现这一点,但可以重建你想要的东西。不过,这需要您做一些工作。
您可以在此处获取符号键的名称:
System/Library/PreferencePanes/Keyboard.prefPane/Contents/Resources/en.lproj/DefaultShortcutsTable.xml/System/Library/ExtensionKit/Extensions/KeyboardSettings.appex/Contents/Resources/en.lproj/DefaultShortcutsTable.xml你需要解析这个XML文件,然后在这里找到相应的热键:
~/Library/Preferences/com.apple.symbolichotkeys.plist
Run Code Online (Sandbox Code Playgroud)
sybmolichotkey必须在上述文件中的密钥(是的,密钥拼写错误!)与后一个文件中包含相同数字的XML密钥之间进行匹配。keyplist
取自DefaultShortcutsTable.xml文件的示例:
<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>
Run Code Online (Sandbox Code Playgroud)
然后在 中查找相同的数字com.apple.symbolichotkeys.plist:
<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>
Run Code Online (Sandbox Code Playgroud)
主要警告:后者plist是二进制形式。要将其转换为文本,您需要在终端中执行以下操作:
plutil -convert xml1 ~/Library/Preferences/com.apple.symbolichotkeys.plist
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |