<!--
{
  "availability" : [
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSButton/ButtonType",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:@E@NSButtonType"
  },
  "title" : "NSButton.ButtonType"
}
-->

# NSButton.ButtonType

Button types that you can specify using [`setButtonType(_:)`](/documentation/AppKit/NSButtonCell/setButtonType(_:)).

```
enum ButtonType
```

## Overview

For more information, see [`setButtonType(_:)`](/documentation/AppKit/NSButtonCell/setButtonType(_:)).

## Topics

### Configuring Button Behavior

[`NSButton.ButtonType.momentaryPushIn`](/documentation/AppKit/NSButton/ButtonType/momentaryPushIn)

A button that illuminates when the user clicks it.

[`NSButton.ButtonType.momentaryLight`](/documentation/AppKit/NSButton/ButtonType/momentaryLight)

A button that displays a highlight when the user clicks it and returns to its normal state when the user releases it.

[`NSButton.ButtonType.momentaryChange`](/documentation/AppKit/NSButton/ButtonType/momentaryChange)

A button that displays its alternate content when clicked and returns to its normal content when the user releases it.

[`NSButton.ButtonType.pushOnPushOff`](/documentation/AppKit/NSButton/ButtonType/pushOnPushOff)

A button that switches between on and off states with each click.

[`NSButton.ButtonType.onOff`](/documentation/AppKit/NSButton/ButtonType/onOff)

A button that switches between a normal and emphasized bezel on each click.

[`NSButton.ButtonType.toggle`](/documentation/AppKit/NSButton/ButtonType/toggle)

A button that switches between its normal and alternate content on each click.

[`NSButton.ButtonType.switch`](/documentation/AppKit/NSButton/ButtonType/switch)

A standard checkbox button.

[`NSButton.ButtonType.radio`](/documentation/AppKit/NSButton/ButtonType/radio)

A button that displays a single selected value from group of possible choices.

[`NSButton.ButtonType.accelerator`](/documentation/AppKit/NSButton/ButtonType/accelerator)

A button that sends repeating actions as pressure changes occur.

[`NSButton.ButtonType.multiLevelAccelerator`](/documentation/AppKit/NSButton/ButtonType/multiLevelAccelerator)

A button that allows for a configurable number of stepped pressure levels and provides tactile feedback as the user reaches each step.

### Deprecated Button Types

[`NSMomentaryLightButton`](/documentation/AppKit/NSMomentaryLightButton)

When the button is clicked (on state), it appears illuminated. If the button has borders, it may also appear recessed. When the button is released, it returns to its normal (off) state.

[`NSPushOnPushOffButton`](/documentation/AppKit/NSPushOnPushOffButton)

When the button is clicked (on state), it appears illuminated. If the button has borders, it may also appear recessed. A second click returns it to its normal (off) state.

[`NSToggleButton`](/documentation/AppKit/NSToggleButton)

After the first click, the button displays its alternate image or title (on state); a second click returns the button to its normal (off) state.

[`NSSwitchButton`](/documentation/AppKit/NSSwitchButton)

This style is a variant of `NSToggleButton` that has no border and is typically used to represent a checkbox.

[`NSRadioButton`](/documentation/AppKit/NSRadioButton)

This style is similar to `NSSwitchButton`, but it is used to constrain a selection to a single element from several elements.

[`NSMomentaryChangeButton`](/documentation/AppKit/NSMomentaryChangeButton)

When the button is clicked, the alternate (on state) image and alternate title are displayed.

[`NSOnOffButton`](/documentation/AppKit/NSOnOffButton)

The first click highlights the button; a second click returns it to the normal (unhighlighted) state.

[`NSAcceleratorButton`](/documentation/AppKit/NSAcceleratorButton)

A button that sends an action when the user first clicks the button and continues sending actions until the user releases pressure entirely.

[`NSMultiLevelAcceleratorButton`](/documentation/AppKit/NSMultiLevelAcceleratorButton)

A multilevel accelerator button is a variation of a normal accelerator button that allows for a configurable number of stepped pressure levels. As each one is reached, the user receives light tactile feedback and an action is sent.

[`NSMomentaryPushInButton`](/documentation/AppKit/NSMomentaryPushInButton)

When the user clicks the button (on state), the button appears illuminated.

[`NSMomentaryPushButton`](/documentation/AppKit/NSMomentaryPushButton)

When the button is clicked (on state), it appears illuminated. If the button has a bordered, it may also appear recessed. When the button is released, it returns to its normal (off) state.

[`NSMomentaryLight`](/documentation/AppKit/NSMomentaryLight)

When the button is clicked (on state), it appears illuminated.



---

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)