---
title: UICommand
framework: uikit
role: symbol
role_heading: Class
path: uikit/uicommand
---

# UICommand

A menu element that performs its action in a selector.

## Declaration

```swift
@MainActor class UICommand
```

## Overview

Overview Create a UICommand object when you want a menu element that performs its action in a selector available in the responder chain. // Create a selector-based action to use as a menu element. let refreshCommand = UICommand(title: "Refresh", action: #selector(refreshData(_:)))

// Use the .displayInline option to avoid displaying the menu as a submenu, // and to separate it from the other menu elements using a line separator. let refreshMenuItem = UIMenu(title: "", options: .displayInline, children: [refreshCommand])

// Insert the menu into the File menu before the Close menu. builder.insertSibling(refreshMenuItem, beforeMenu: .close)

## Topics

### Creating a command

- [init(title:subtitle:image:action:propertyList:alternates:discoverabilityTitle:attributes:state:)](uikit/uicommand/init(title:subtitle:image:action:propertylist:alternates:discoverabilitytitle:attributes:state:).md)
- [init(title:image:action:propertyList:alternates:discoverabilityTitle:attributes:state:)](uikit/uicommand/init(title:image:action:propertylist:alternates:discoverabilitytitle:attributes:state:).md)
- [init(coder:)](uikit/uicommand/init(coder:).md)
- [Adding menus and shortcuts to the menu bar and user interface](uikit/adding-menus-and-shortcuts-to-the-menu-bar-and-user-interface.md)

### Getting information about the command

- [title](uikit/uicommand/title.md)
- [image](uikit/uicommand/image.md)
- [action](uikit/uicommand/action.md)
- [discoverabilityTitle](uikit/uicommand/discoverabilitytitle.md)
- [attributes](uikit/uicommand/attributes.md)
- [state](uikit/uicommand/state.md)

### Getting command alternatives

- [alternates](uikit/uicommand/alternates.md)
- [UICommandAlternate](uikit/uicommandalternate.md)

### Associating data

- [propertyList](uikit/uicommand/propertylist.md)
- [UICommandTagShare](uikit/uicommandtagshare.md)

### Initializers

- [init(title:subtitle:image:selectedImage:action:propertyList:alternates:discoverabilityTitle:attributes:state:)](uikit/uicommand/init(title:subtitle:image:selectedimage:action:propertylist:alternates:discoverabilitytitle:attributes:state:).md)
- [init(title:subtitle:image:selectedImage:preferredImageVisibility:action:propertyList:alternates:discoverabilityTitle:attributes:state:)](uikit/uicommand/init(title:subtitle:image:selectedimage:preferredimagevisibility:action:propertylist:alternates:discoverabilitytitle:attributes:state:).md)

## Relationships

### Inherits From

- [UIMenuElement](uikit/uimenuelement.md)

### Inherited By

- [UIKeyCommand](uikit/uikeycommand.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)
- [UIAccessibilityIdentification](uikit/uiaccessibilityidentification.md)
- [UIMenuLeaf](uikit/uimenuleaf.md)

## See Also

### Menu elements and keyboard shortcuts

- [Adding menus and shortcuts to the menu bar and user interface](uikit/adding-menus-and-shortcuts-to-the-menu-bar-and-user-interface.md)
- [Adopting menus and UIActions in your user interface](uikit/adopting-menus-and-uiactions-in-your-user-interface.md)
- [UIMenuElement](uikit/uimenuelement.md)
- [UIAction](uikit/uiaction.md)
- [UIKeyCommand](uikit/uikeycommand.md)
- [UIDeferredMenuElement](uikit/uideferredmenuelement.md)
- [UIDeferredMenuElement.Provider](uikit/uideferredmenuelement/provider.md)
- [UIMenuElement.Attributes](uikit/uimenuelement/attributes.md)
- [UIMenuElement.State](uikit/uimenuelement/state.md)
- [UIMenuLeaf](uikit/uimenuleaf.md)
