<!--
{
  "availability" : [
    "macOS: 10.6.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSApplication/PresentationOptions-swift.struct",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:@E@NSApplicationPresentationOptions"
  },
  "title" : "NSApplication.PresentationOptions"
}
-->

# NSApplication.PresentationOptions

Constants that control the presentation of the app, typically for fullscreen apps such as games or kiosks.

```
struct PresentationOptions
```

## Overview

There are restrictions on the combination of presentation options that can be set simultaneously:

- [`autoHideDock`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/autoHideDock) and [`hideDock`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/hideDock) are mutually exclusive: You may specify one or the other, but not both.
- [`autoHideMenuBar`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/autoHideMenuBar) and [`hideMenuBar`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/hideMenuBar) are mutually exclusive: You may specify one or the other, but not both.
- If you specify [`hideMenuBar`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/hideMenuBar), it must be accompanied by [`hideDock`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/hideDock).
- If you specify [`autoHideMenuBar`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/autoHideMenuBar), it must be accompanied by either [`hideDock`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/hideDock) or [`autoHideDock`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/autoHideDock).
- If you specify any of [`disableProcessSwitching`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/disableProcessSwitching), [`disableForceQuit`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/disableForceQuit), [`disableSessionTermination`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/disableSessionTermination), or [`disableMenuBarTransparency`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/disableMenuBarTransparency), it must be accompanied by either [`hideDock`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/hideDock) or [`autoHideDock`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/autoHideDock).
- [`autoHideToolbar`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/autoHideToolbar) may be used only when both [`fullScreen`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/fullScreen) and [`autoHideMenuBar`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/autoHideMenuBar) are also set.

When [`NSApplication`](/documentation/AppKit/NSApplication) receives a parameter value that does not conform to these requirements, it raises an <doc://com.apple.documentation/documentation/Foundation/NSExceptionName/invalidArgumentException>.

## Topics

### Presentation Options

[`NSApplicationPresentationDefault`](/documentation/AppKit/NSApplicationPresentationOptions/NSApplicationPresentationDefault)

This is the default presentation mode.

[`NSApplicationPresentationAutoHideDock`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/autoHideDock)

The dock is normally hidden, but automatically appears when moused near.

[`NSApplicationPresentationHideDock`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/hideDock)

The dock is entirely hidden and disabled.

[`NSApplicationPresentationAutoHideMenuBar`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/autoHideMenuBar)

The menu bar is normally hidden, but automatically appears when moused near.

[`NSApplicationPresentationHideMenuBar`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/hideMenuBar)

The menu bar is entirely hidden and disabled.

[`NSApplicationPresentationDisableAppleMenu`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/disableAppleMenu)

All Apple Menu items are disabled.

[`NSApplicationPresentationDisableProcessSwitching`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/disableProcessSwitching)

The process switching user interface (Command + Tab to cycle through apps) is disabled.

[`NSApplicationPresentationDisableForceQuit`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/disableForceQuit)

The force quit panel (displayed by pressing Command + Option + Esc) is disabled

[`NSApplicationPresentationDisableSessionTermination`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/disableSessionTermination)

The panel that shows the Restart, Shut Down, and Log Out options that are displayed as a result of pushing the power key is disabled.

[`NSApplicationPresentationDisableHideApplication`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/disableHideApplication)

The app’s “Hide” menu item is disabled.

[`NSApplicationPresentationDisableMenuBarTransparency`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/disableMenuBarTransparency)

The menu bar transparency appearance is disabled.

[`NSApplicationPresentationFullScreen`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/fullScreen)

The app is in fullscreen mode.

[`NSApplicationPresentationAutoHideToolbar`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/autoHideToolbar)

When in fullscreen mode the window toolbar is detached from window and hides and shows with autoHidden menuBar.

[`NSApplicationPresentationDisableCursorLocationAssistance`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/disableCursorLocationAssistance)

The behavior that allows the user to shake the mouse to locate the cursor is disabled.

### Initializers

[`init(rawValue:)`](/documentation/AppKit/NSApplication/PresentationOptions-swift.struct/init(rawValue:))

Initializes a new presentation options structure.

## Relationships

### Conforms To

[`RawRepresentable`](/documentation/Swift/RawRepresentable)

[`BitwiseCopyable`](/documentation/Swift/BitwiseCopyable)

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Equatable`](/documentation/Swift/Equatable)

[`ExpressibleByArrayLiteral`](/documentation/Swift/ExpressibleByArrayLiteral)

[`SetAlgebra`](/documentation/Swift/SetAlgebra)

[`OptionSet`](/documentation/Swift/OptionSet)

---

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)