<!--
{
  "availability" : [
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSPopUpButton/insertItem(withTitle:at:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSPopUpButton(im)insertItemWithTitle:atIndex:"
  },
  "title" : "insertItem(withTitle:at:)"
}
-->

# insertItem(withTitle:at:)

Inserts an item at the specified position in the menu.

```
func insertItem(withTitle title: String, at index: Int)
```

## Parameters

`title`

The title of the new item. If an item with the same title already exists in the menu, the existing item is removed and the new one is added

`index`

The zero-based index at which to insert the item. Specifying 0 inserts the item at the top of the menu.

## Discussion

If you want to move an item, it’s better to invoke [`removeItem(withTitle:)`](/documentation/AppKit/NSPopUpButton/removeItem(withTitle:)) explicitly and then send this method. After adding the item, this method uses the [`synchronizeTitleAndSelectedItem()`](/documentation/AppKit/NSPopUpButton/synchronizeTitleAndSelectedItem()) method to make sure the item displayed matches the currently selected item.

Since this method searches for duplicate items, it should not be used if you are adding an item to an already populated menu with more than a few hundred items. Add items directly to the receiver’s menu instead.

## See Also

[`indexOfItem(withTitle:)`](/documentation/AppKit/NSPopUpButton/indexOfItem(withTitle:))

Returns the index of the item with the specified title.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)