---
title: Menus and commands
framework: swiftui
role: collectionGroup
role_heading: API Collection
path: swiftui/menus-and-commands
---

# Menus and commands

Provide space-efficient, context-dependent access to commands and controls.

## Overview

Overview Use a menu to provide people with easy access to common commands. You can add items to a macOS or iPadOS app’s menu bar using the commands(content:) scene modifier, or create context menus that people reveal near their current task using the contextMenu(menuItems:) view modifier.

Create submenus by nesting Menu instances inside others. Use a Divider view to create a separator between menu elements. For design guidance, see Menus in the Human Interface Guidelines.

## Topics

### Building a menu bar

- [Building and customizing the menu bar with SwiftUI](swiftui/building-and-customizing-the-menu-bar-with-swiftui.md)

### Creating a menu

- [Populating SwiftUI menus with adaptive controls](swiftui/populating-swiftui-menus-with-adaptive-controls.md)
- [Menu](swiftui/menu.md)
- [menuStyle(_:)](swiftui/view/menustyle(_:).md)

### Creating context menus

- [contextMenu(menuItems:)](swiftui/view/contextmenu(menuitems:).md)
- [contextMenu(menuItems:preview:)](swiftui/view/contextmenu(menuitems:preview:).md)
- [contextMenu(forSelectionType:menu:primaryAction:)](swiftui/view/contextmenu(forselectiontype:menu:primaryaction:).md)

### Defining commands

- [commands(content:)](swiftui/scene/commands(content:).md)
- [commandsRemoved()](swiftui/scene/commandsremoved().md)
- [commandsReplaced(content:)](swiftui/scene/commandsreplaced(content:).md)
- [Commands](swiftui/commands.md)
- [CommandMenu](swiftui/commandmenu.md)
- [CommandGroup](swiftui/commandgroup.md)
- [CommandsBuilder](swiftui/commandsbuilder.md)
- [CommandGroupPlacement](swiftui/commandgroupplacement.md)

### Getting built-in command groups

- [SidebarCommands](swiftui/sidebarcommands.md)
- [TextEditingCommands](swiftui/texteditingcommands.md)
- [TextFormattingCommands](swiftui/textformattingcommands.md)
- [ToolbarCommands](swiftui/toolbarcommands.md)
- [ImportFromDevicesCommands](swiftui/importfromdevicescommands.md)
- [InspectorCommands](swiftui/inspectorcommands.md)
- [EmptyCommands](swiftui/emptycommands.md)

### Showing a menu indicator

- [menuIndicator(_:)](swiftui/view/menuindicator(_:).md)
- [menuIndicatorVisibility](swiftui/environmentvalues/menuindicatorvisibility.md)

### Responding to menu item interaction

- [onMenuItemHighlight(perform:)](swiftui/view/onmenuitemhighlight(perform:).md)

### Configuring menu dismissal

- [menuActionDismissBehavior(_:)](swiftui/view/menuactiondismissbehavior(_:).md)
- [MenuActionDismissBehavior](swiftui/menuactiondismissbehavior.md)

### Setting a preferred order

- [menuOrder(_:)](swiftui/view/menuorder(_:).md)
- [menuOrder](swiftui/environmentvalues/menuorder.md)
- [MenuOrder](swiftui/menuorder.md)

### Deprecated types

- [MenuButton](swiftui/menubutton.md)
- [PullDownButton](swiftui/pulldownbutton.md)
- [ContextMenu](swiftui/contextmenu.md)

## See Also

### Views

- [View fundamentals](swiftui/view-fundamentals.md)
- [View configuration](swiftui/view-configuration.md)
- [View styles](swiftui/view-styles.md)
- [Animations](swiftui/animations.md)
- [Text input and output](swiftui/text-input-and-output.md)
- [Images](swiftui/images.md)
- [Controls and indicators](swiftui/controls-and-indicators.md)
- [Shapes](swiftui/shapes.md)
- [Drawing and graphics](swiftui/drawing-and-graphics.md)
