One button, two regions: the action, and the attached arrow menu
Combo Button
/ NSComboButton · NSComboButton.Style.split /
also called split button, menu-arrow button, action-and-menu button, NSComboButton
A combo button combines two adjacent targets: a main button that immediately performs the default action and a small arrow button that opens related alternatives. A pop-up button instead shows the current selected value, while a pull-down button opens a menu from the whole control and has no separate primary-action region. NSComboButton is available on macOS 13 and later.
If you called it…
…you meant a combo button.
Anatomy — every part, named
- 1Primary action region
NSComboButton.action“The main half that does the thing immediately” is the primary action region.
- 3Split divider
NSComboButton.Style.split“The tiny line between the label and arrow” is the split divider.
Prompt — paste into your agent
Use a Combo Button with NSComboButton (macOS 13+) in split style: clicking the main region performs the primary action, while the attached arrow region opens its NSMenu. Do not use a pop-up button, which displays a current selection, or a pull-down button, whose whole button opens an action menu.
Debug prompt — when it misbehaves
Paste this, then describe what you’re seeing — it hands your agent the classic failure modes to rule out first.
Debug my macOS combo button (NSComboButton, macOS 13+). Rule out: unified vs split style confusion — in unified the whole button shows the menu, in split only the arrow section does; the menu property empty so the arrow does nothing; running on macOS 12 or earlier where NSComboButton does not exist and a popup-button fallback is needed. The symptom:
In code
The exact names this thing goes by in code — each row is one framework’s word for it. Use the row that matches your project (or paste it into your prompt).
| AppKit | NSComboButton | macOS 13+ |
| AppKit | NSComboButton.Style.split | separate action and menu regions |
| SwiftUI | Button + Menu | no single native SwiftUI equivalent |