sindresorhus/KeyboardShortcuts
为 macOS 应用添加用户可自定义全局快捷键的 Swift 包,内置快捷键录制界面。
- Star
- 2,736
- Fork
- 253
- 未关闭 Issue
- 3
- 最近提交
- 2个月前
这是什么?
KeyboardShortcuts 是一个面向 macOS 应用的 Swift 包,用于实现用户可自定义的全局键盘快捷键。开发者只需定义一个具名快捷键,在设置界面放入 SwiftUI 或 Cocoa 录制控件,再为按下或松开事件注册回调即可。快捷键会保存在 UserDefaults 中,若所选组合与系统或应用主菜单冲突,录制控件会提示用户。
该包支持沙盒环境并兼容 Mac App Store,不会弹出权限请求。此外还提供在 NSMenuItem 中显示快捷键、将修饰键转换为符号、监听硬编码快捷键,以及在 macOS 13 及以上版本中按住按键时重复触发动作等辅助功能。
支持 macOS 10.15 及以上版本,通过 Swift Package Manager 安装。限制包括沙盒应用无法使用媒体键,且标准接口无法监听 Caps Lock 键。
核心功能
- 01提供 SwiftUI 版 Recorder 和 Cocoa 版 RecorderCocoa 录制控件。
- 02自动将用户设置的快捷键保存在 UserDefaults 中。
- 03在快捷键与系统快捷键或应用主菜单冲突时给出提示。
- 04同时支持按下与松开事件的监听。
- 05可将录制的快捷键绑定到 NSMenuItem。
- 06通过 Swift Package Manager 安装。
适用场景
- 为菜单栏工具添加用户可配置的全局快捷键。
- 让用户在 macOS 应用的偏好设置窗口中自定义快捷键。
- 结合自有存储,实现应用内可录制、可保存的快捷键。
快速上手
- 1
在 Xcode 的 Swift Package Manager 标签页中使用仓库地址添加该包
- 2
注册快捷键名称,然后在设置界面中添加 Recorder 视图
- 3
使用 onKeyUp 或 onKeyDown 监听快捷键
使用前须知
- 仅支持 macOS 10.15 及以上版本,不适用于其他平台。
- 全局快捷键依赖 Apple 尚未提供替代方案的 Carbon API,且沙盒应用不支持媒体键。
收录于专题
标签
#macos#swift#keyboard-shortcuts#hotkey#swiftui#swift-package-manager#carthage#cocoapods#swift-package#swiftui-components
常见问题
- KeyboardShortcuts 是什么?
- 为 macOS 应用添加用户可自定义全局快捷键的 Swift 包,内置快捷键录制界面。 KeyboardShortcuts 是一个面向 macOS 应用的 Swift 包,用于实现用户可自定义的全局键盘快捷键。开发者只需定义一个具名快捷键,在设置界面放入 SwiftUI 或 Cocoa 录制控件,再为按下或松开事件注册回调即可。快捷键会保存在 UserDefaults 中,若所选组合与系统或应用主菜单冲突,录制控件会提示用户。
- KeyboardShortcuts 可以免费使用吗?用的什么许可证?
- KeyboardShortcuts 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- KeyboardShortcuts 还在维护吗?
- 半年内有更新。KeyboardShortcuts 最近一次提交是在 2026年9月11日。
- KeyboardShortcuts 适合用来做什么?
- 为菜单栏工具添加用户可配置的全局快捷键。 让用户在 macOS 应用的偏好设置窗口中自定义快捷键。 结合自有存储,实现应用内可录制、可保存的快捷键。
- KeyboardShortcuts 怎么安装和运行?
- 在 Xcode 的 Swift Package Manager 标签页中使用仓库地址添加该包 注册快捷键名称,然后在设置界面中添加 Recorder 视图 使用 onKeyUp 或 onKeyDown 监听快捷键
- 在哪里获取 KeyboardShortcuts?
- 源代码和安装说明在 GitHub 上:https://github.com/sindresorhus/KeyboardShortcuts
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
面向 Apple 平台(macOS、iOS、tvOS、watchOS、visionOS)的日志框架,可将日志同时输出到控制台、文件或自定义后端。
1.3万+3 本周2272Objective-CBSD-3-Clause更新于 前天
基于 URLSession 构建的 Swift HTTP 网络库,提供链式请求、参数编码、上传下载与响应校验。
4.2万+1 本周7645SwiftMIT更新于 6天前