返回 Skill 列表
extension
分类: 开发与工程无需 API Key

"keyboard-shortcuts"

macOS键盘快捷键模式:keyboardShortcut修饰符,CommandMenu,CommandGroup,菜单栏自定义。在实现macOS键盘快捷键、菜单栏命令或热键时使用。触发词:键盘,快捷键,CommandMenu,CommandGroup,菜单栏,热键。

person作者: jakexiaohubgithub

Keyboard Shortcuts (macOS)

Every primary action in a macOS app MUST have a keyboard shortcut.

Button Shortcuts

Button("Save") { save() }
    .keyboardShortcut("s", modifiers: .command)

Button("New") { createNew() }
    .keyboardShortcut("n", modifiers: .command)

Button("Delete") { deleteSelected() }
    .keyboardShortcut(.delete, modifiers: .command)

Button("Find") { showSearch() }
    .keyboardShortcut("f", modifiers: .command)

Menu Bar — CommandMenu (custom menu)

Add custom menus to the menu bar via .commands { } on a Scene:

WindowGroup {
    ContentView()
}
.commands {
    CommandMenu("Items") {
        Button("New Item") { createItem() }
            .keyboardShortcut("n", modifiers: .command)
        Button("Duplicate") { duplicateItem() }
            .keyboardShortcut("d", modifiers: .command)
        Divider()
        Button("Delete") { deleteItem() }
            .keyboardShortcut(.delete, modifiers: .command)
    }
}

Menu Bar — CommandGroup (extend system menus)

.commands {
    CommandGroup(after: .newItem) {
        Button("New from Template") { newFromTemplate() }
            .keyboardShortcut("t", modifiers: [.command, .shift])
    }
}

Common Shortcuts Reference

| Action | Shortcut | |--------|----------| | New | Cmd+N | | Save | Cmd+S | | Delete | Cmd+Delete | | Find | Cmd+F | | Select All | Cmd+A | | Undo | Cmd+Z | | Preferences | Cmd+, |

Rules

  1. Every primary action MUST have .keyboardShortcut()
  2. Use CommandMenu for app-specific menus, CommandGroup to extend system menus
  3. CommandMenu and CommandGroup go inside .commands { } modifier on a Scene — NEVER directly in @SceneBuilder body
  4. Follow Apple's standard shortcut conventions (Cmd+S for save, Cmd+N for new, etc.)
  5. Use modifier combinations for secondary actions (Cmd+Shift+N, Cmd+Option+D)