Push Buttons

A push button appears within a view and initiates an instantaneous app-specific action, such as printing a document or deleting a file. Push buttons contain text—not icons—and often open a separate window, dialog, or app so the user can complete a task.

Cropped screenshot of a print dialog, highlighting the Cancel and Print push buttons.

Configure a push button the user is likely to select as the default. A default push button is prominent in appearance and automatically performs its action when the user presses Return. There can only be a single default button in a view.

Use a push button in a view, not a window frame. Push buttons aren’t intended for use within toolbars and status bars. If you need a button in a toolbar, use a toolbar item. See Toolbars.

Display text rather than an icon in a push button. Users expect push buttons to include descriptive titles. If you want to display an icon in a button, use an image button instead. See Image Buttons.

Adjust a push button’s width to accommodate the title. If you don’t make the button wide enough, its title may be cut off.

Use title-case for push button titles. Capitalize every word except articles, coordinating conjunctions, and prepositions of four or fewer letters.

Use verbs in push button titles. An action-specific title shows that the button is interactive and conveys what happens when clicked. For example, Save, Close, Print, Delete, and Change Password are action-specific titles. Because buttons initiate immediate actions, there’s no need for to include a time descriptor like Now.

Be specific when targeting a single item. A title like Choose Picture is more helpful than Import because it identifies what the user should choose.

Cropped screenshot, highlighting an Advanced push button.

Include a trailing ellipsis in the title when a push button opens another window, dialog, or app. For example, the Edit buttons in the AutoFill pane of Safari Preferences include ellipses because they open other dialogs or windows that let the user modify autofill values.

Avoid providing introductory labels. Push button titles should be descriptive enough that a label is unnecessary.

Separate destructive buttons from nondestructive controls. Destructive buttons should be far enough away from other elements that the user has to make an intentional effort to click the button.

Use a checkbox instead of a button when the user needs to choose between two states. The on and off states of a checkbox are generally clearer to most users than a push button configured as a toggle. See Checkboxes.

Use a pop-up button when you need to present a list of choices. A pop-up button’s appearance informs the user that a list will be presented. See Pop-Up Buttons.

Consider enabling spring loading. Push buttons can be configured to support spring loading on systems with a Force Touch trackpad. Spring loading lets a user activate the button by dragging selected items over it and force clicking—pressing harder—without dropping the selected items. The user can then continue dragging the items, possibly to perform additional actions. For developer guidance, see isSpringLoaded.

For developer guidance, see NSButton, NSButtonCell, and the NSMomentaryPushInButton and NSMomentaryLightButton styles of NSButtonType.