---
title: NSMenu
framework: appkit
role: symbol
role_heading: Class
path: appkit/nsmenu
---

# NSMenu

An object that manages an app’s menus.

## Declaration

```swift
class NSMenu
```

## Topics

### Managing the Menu Bar

- [menuBarVisible()](appkit/nsmenu/menubarvisible().md)
- [setMenuBarVisible(_:)](appkit/nsmenu/setmenubarvisible(_:).md)
- [menuBarHeight](appkit/nsmenu/menubarheight.md)

### Creating an NSMenu Object

- [init(title:)](appkit/nsmenu/init(title:).md)
- [init(coder:)](appkit/nsmenu/init(coder:).md)

### Adding and Removing Menu Items

- [insertItem(_:at:)](appkit/nsmenu/insertitem(_:at:).md)
- [insertItem(withTitle:action:keyEquivalent:at:)](appkit/nsmenu/insertitem(withtitle:action:keyequivalent:at:).md)
- [addItem(_:)](appkit/nsmenu/additem(_:).md)
- [addItem(withTitle:action:keyEquivalent:)](appkit/nsmenu/additem(withtitle:action:keyequivalent:).md)
- [removeItem(_:)](appkit/nsmenu/removeitem(_:).md)
- [removeItem(at:)](appkit/nsmenu/removeitem(at:).md)
- [itemChanged(_:)](appkit/nsmenu/itemchanged(_:).md)
- [removeAllItems()](appkit/nsmenu/removeallitems().md)

### Finding Menu Items

- [item(withTag:)](appkit/nsmenu/item(withtag:).md)
- [item(withTitle:)](appkit/nsmenu/item(withtitle:).md)
- [item(at:)](appkit/nsmenu/item(at:).md)
- [numberOfItems](appkit/nsmenu/numberofitems.md)
- [items](appkit/nsmenu/items.md)

### Finding Indices of Menu Items

- [index(of:)](appkit/nsmenu/index(of:).md)
- [indexOfItem(withTitle:)](appkit/nsmenu/indexofitem(withtitle:).md)
- [indexOfItem(withTag:)](appkit/nsmenu/indexofitem(withtag:).md)
- [indexOfItem(withTarget:andAction:)](appkit/nsmenu/indexofitem(withtarget:andaction:).md)
- [indexOfItem(withRepresentedObject:)](appkit/nsmenu/indexofitem(withrepresentedobject:).md)
- [indexOfItem(withSubmenu:)](appkit/nsmenu/indexofitem(withsubmenu:).md)

### Managing Submenus

- [setSubmenu(_:for:)](appkit/nsmenu/setsubmenu(_:for:).md)
- [submenuAction(_:)](appkit/nsmenu/submenuaction(_:).md)
- [supermenu](appkit/nsmenu/supermenu.md)
- [isTornOff](appkit/nsmenu/istornoff.md)

### Enabling and Disabling Menu Items

- [autoenablesItems](appkit/nsmenu/autoenablesitems.md)
- [update()](appkit/nsmenu/update().md)

### Getting and Setting the Menu Font

- [font](appkit/nsmenu/font.md)

### Handling Keyboard Equivalents

- [performKeyEquivalent(with:)](appkit/nsmenu/performkeyequivalent(with:).md)

### Simulating Mouse Clicks

- [performActionForItem(at:)](appkit/nsmenu/performactionforitem(at:).md)

### Managing the Title

- [title](appkit/nsmenu/title.md)

### Selecting Items

- [selectedItems](appkit/nsmenu/selecteditems.md)
- [selectionMode](appkit/nsmenu/selectionmode-swift.property.md)
- [NSMenu.SelectionMode](appkit/nsmenu/selectionmode-swift.enum.md)

### Configuring Menu Size

- [minimumWidth](appkit/nsmenu/minimumwidth.md)
- [size](appkit/nsmenu/size.md)

### Getting Menu Properties

- [propertiesToUpdate](appkit/nsmenu/propertiestoupdate.md)

### Managing Presentation Styles

- [presentationStyle](appkit/nsmenu/presentationstyle-swift.property.md)
- [NSMenu.PresentationStyle](appkit/nsmenu/presentationstyle-swift.enum.md)

### Working with Palettes

- [palette(colors:titles:template:onSelectionChange:)](appkit/nsmenu/palette(colors:titles:template:onselectionchange:).md)

### Managing Menu Change Notifications

- [menuChangedMessagesEnabled](appkit/nsmenu/menuchangedmessagesenabled.md)

### Displaying Contextual Menus

- [allowsContextMenuPlugIns](appkit/nsmenu/allowscontextmenuplugins.md)

### Displaying Context-Sensitive Help

- [popUpContextMenu(_:with:for:)](appkit/nsmenu/popupcontextmenu(_:with:for:).md)
- [popUpContextMenu(_:with:for:with:)](appkit/nsmenu/popupcontextmenu(_:with:for:with:).md)
- [helpRequested(with:)](appkit/nsmenu/helprequested(with:).md)
- [popUp(positioning:at:in:)](appkit/nsmenu/popup(positioning:at:in:).md)

### Managing Display of the State Column

- [showsStateColumn](appkit/nsmenu/showsstatecolumn.md)

### Controlling Allocation Zones

- [menuZone()](appkit/nsmenu/menuzone().md)

### Handling Highlighting

- [highlightedItem](appkit/nsmenu/highlighteditem.md)

### Managing the User Interface

- [userInterfaceLayoutDirection](appkit/nsmenu/userinterfacelayoutdirection.md)

### Managing the Delegate

- [delegate](appkit/nsmenu/delegate.md)

### Handling Tracking

- [cancelTracking()](appkit/nsmenu/canceltracking().md)
- [cancelTrackingWithoutAnimation()](appkit/nsmenu/canceltrackingwithoutanimation().md)

### Constants

- [NSMenu.Properties](appkit/nsmenu/properties.md)

### Notifications

- [didAddItemNotification](appkit/nsmenu/didadditemnotification.md)
- [didChangeItemNotification](appkit/nsmenu/didchangeitemnotification.md)
- [didBeginTrackingNotification](appkit/nsmenu/didbegintrackingnotification.md)
- [didEndTrackingNotification](appkit/nsmenu/didendtrackingnotification.md)
- [didRemoveItemNotification](appkit/nsmenu/didremoveitemnotification.md)
- [didSendActionNotification](appkit/nsmenu/didsendactionnotification.md)
- [willSendActionNotification](appkit/nsmenu/willsendactionnotification.md)

### Structures

- [NSMenu.DidAddItemMessage](appkit/nsmenu/didadditemmessage.md)
- [NSMenu.DidBeginTrackingMessage](appkit/nsmenu/didbegintrackingmessage.md)
- [NSMenu.DidChangeItemMessage](appkit/nsmenu/didchangeitemmessage.md)
- [NSMenu.DidEndTrackingMessage](appkit/nsmenu/didendtrackingmessage.md)
- [NSMenu.DidRemoveItemMessage](appkit/nsmenu/didremoveitemmessage.md)
- [NSMenu.DidSendActionMessage](appkit/nsmenu/didsendactionmessage.md)
- [NSMenu.WillSendActionMessage](appkit/nsmenu/willsendactionmessage.md)

### Instance Properties

- [automaticallyInsertsWritingToolsItems](appkit/nsmenu/automaticallyinsertswritingtoolsitems.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSAccessibilityElementProtocol](appkit/nsaccessibilityelementprotocol.md)
- [NSAccessibilityProtocol](appkit/nsaccessibilityprotocol.md)
- [NSAppearanceCustomization](appkit/nsappearancecustomization.md)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSUserInterfaceItemIdentification](appkit/nsuserinterfaceitemidentification.md)

## See Also

### Menus

- [NSMenuItem](appkit/nsmenuitem.md)
- [NSMenuItemBadge](appkit/nsmenuitembadge.md)
- [NSMenuDelegate](appkit/nsmenudelegate.md)
