---
title: NSHostingController
framework: swiftui
role: symbol
role_heading: Class
path: swiftui/nshostingcontroller
---

# NSHostingController

An AppKit view controller that hosts SwiftUI view hierarchy.

## Declaration

```swift
@MainActor @preconcurrency class NSHostingController<Content> where Content : View
```

## Overview

Overview Create an NSHostingController object when you want to integrate SwiftUI views into an AppKit view hierarchy. At creation time, specify the SwiftUI view you want to use as the root view for this view controller; you can change that view later using the rootView property. Use the hosting controller like you would any other view controller, by presenting it or embedding it as a child view controller in your interface.

## Topics

### Creating a hosting controller object

- [init(rootView:)](swiftui/nshostingcontroller/init(rootview:).md)
- [init(coder:rootView:)](swiftui/nshostingcontroller/init(coder:rootview:).md)
- [init(coder:)](swiftui/nshostingcontroller/init(coder:).md)

### Getting the root view

- [rootView](swiftui/nshostingcontroller/rootview.md)
- [identifier](swiftui/nshostingcontroller/identifier.md)

### Configuring the controller

- [sizeThatFits(in:)](swiftui/nshostingcontroller/sizethatfits(in:).md)
- [preferredContentSize](swiftui/nshostingcontroller/preferredcontentsize.md)
- [sizingOptions](swiftui/nshostingcontroller/sizingoptions.md)
- [safeAreaRegions](swiftui/nshostingcontroller/safearearegions.md)
- [sceneBridgingOptions](swiftui/nshostingcontroller/scenebridgingoptions.md)

## Relationships

### Inherits From

- [NSViewController](appkit/nsviewcontroller.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSEditor](appkit/nseditor.md)
- [NSExtensionRequestHandling](foundation/nsextensionrequesthandling.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSeguePerforming](appkit/nssegueperforming.md)
- [NSStandardKeyBindingResponding](appkit/nsstandardkeybindingresponding.md)
- [NSTouchBarProvider](appkit/nstouchbarprovider.md)
- [NSUserActivityRestoring](appkit/nsuseractivityrestoring.md)
- [NSUserInterfaceItemIdentification](appkit/nsuserinterfaceitemidentification.md)

## See Also

### Displaying SwiftUI views in AppKit

- [Unifying your app’s animations](swiftui/unifying-your-app-s-animations.md)
- [NSHostingView](swiftui/nshostingview.md)
- [NSHostingMenu](swiftui/nshostingmenu.md)
- [NSHostingSizingOptions](swiftui/nshostingsizingoptions.md)
- [NSHostingSceneRepresentation](swiftui/nshostingscenerepresentation.md)
- [NSHostingSceneBridgingOptions](swiftui/nshostingscenebridgingoptions.md)
