keyboardShortcut 是 SwiftUI 中用于给按钮(Button)、菜单项等绑定快捷键的修饰符,macOS 和 iPadOS 均支持,特别适合配合 .commands 自定义菜单项时使用。
基本语法
配合 .commands 的菜单使用:
.commands {
CommandMenu("关于") {
Link("隐私政策", destination: URL(string: "https://fangjunyu.com")!)
.keyboardShortcut("e", modifiers: [.command])
}
}

语法结构
.keyboardShortcut(_ key: KeyEquivalent, modifiers: EventModifiers)
key: 快捷键的主键,比如 “s”、.delete、.escape
modifiers: 组合修饰键(数组):.command、.control、.option、.shift。
如果modifiers为[],则表示不组合修饰符:
.commands {
CommandMenu("关于") {
Link("隐私政策", destination: URL(string: "https://fangjunyu.com")!)
.keyboardShortcut("e", modifiers: [])
}
}
常见示例
1、基本快捷键
Button("导入") {
// 导入操作
}
.keyboardShortcut("i", modifiers: [.command]) // ⌘I
2、使用特殊按键
Button("删除") {
// 删除操作
}
.keyboardShortcut(.delete, modifiers: [.command]) // ⌘⌫
3、多个修饰符组合
Button("创建") {
// 创建操作
}
.keyboardShortcut("n", modifiers: [.command, .shift]) // ⇧⌘N
4、无修饰符
Button("创建1") {
// 创建操作
}
.keyboardShortcut("f") // ⌘F
不使用modifiers,等于Command + F键,如果不想要配合Command,就需要添加modifiers参数并设置为空。
Button("创建2") {
// 创建操作
}
.keyboardShortcut("f", modifiers: []) // F

常见的特殊键
以下是 Apple 官方支持的 KeyEquivalent 枚举中可以直接使用的特殊按键:
1、.return:回车键(Return),用于提交表单、确认。
2、.enter:小键盘 Enter 键,备用回车键,数字小键盘常见。
3、.tab:Tab 键,用于字段切换、焦点移动。
4、.space:空格键,用于播放/暂停、选择等。
5、.escape:Esc 退出键,用于取消操作、关闭弹窗等。
6、.delete:删除键,用于删除字符、项目。
7、.deleteForward:向前删除,用于删除右侧内容(等价于 Fn+Delete)。
8、.clear:Clear 键(数字键盘),清除全部内容(会计键盘常用)。
方向与导航键
1、.upArrow:向上箭头,菜单导航、滚动、切换。
2、.downArrow:向下箭头,菜单导航、滚动、切换。
3、.leftArrow:向左箭头,页码切换、图片滑动。
4、.rightArrow:向右箭头,页码切换、图片滑动。
页面导航键
1、.home:Home 键,滚动到顶部、跳转起始。
2、.end:End 键,滚动到底部、跳转结尾。
3、.pageUp:Page Up,表示上一页。
4、.pageDown:Page Down,表示下一页。
使用示例
Button("删除") {
deleteItem()
}
.keyboardShortcut(.delete)
总结
keyboardShortcut可以通过快捷键绑定,实现相应的功能,还支持特殊键和组合修饰符,常用于菜单项。
相关文章
SwiftUI macOS的commands菜单栏修饰符:https://fangjunyu.com/2025/06/19/swiftui-macos%e7%9a%84commands%e8%8f%9c%e5%8d%95%e6%a0%8f%e4%bf%ae%e9%a5%b0%e7%ac%a6/