---
title: NSHostingView
framework: swiftui
role: symbol
role_heading: Class
path: swiftui/nshostingview
---

# NSHostingView

An AppKit view that hosts a SwiftUI view hierarchy.

## Declaration

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

## Overview

Overview You use NSHostingView objects to integrate SwiftUI views into your AppKit view hierarchies. A hosting view is an NSView object that manages a single SwiftUI view, which may itself contain other SwiftUI views. Because it is an NSView object, you can integrate it into your existing AppKit view hierarchies to implement portions of your UI. For example, you can use a hosting view to implement a custom control. A hosting view acts as a bridge between your SwiftUI views and your AppKit interface. During layout, the hosting view reports the content size preferences of your SwiftUI views back to the AppKit layout system so that it can size the view appropriately. The hosting view also coordinates event delivery.

## Topics

### Creating a hosting view

- [init(rootView:)](swiftui/nshostingview/init(rootview:).md)
- [init(coder:)](swiftui/nshostingview/init(coder:).md)
- [prepareForReuse()](swiftui/nshostingview/prepareforreuse().md)

### Getting the root view

- [rootView](swiftui/nshostingview/rootview.md)

### Configuring the view layout behavior

- [requiresConstraintBasedLayout](swiftui/nshostingview/requiresconstraintbasedlayout.md)
- [userInterfaceLayoutDirection](swiftui/nshostingview/userinterfacelayoutdirection.md)
- [isFlipped](swiftui/nshostingview/isflipped.md)
- [layerContentsRedrawPolicy](swiftui/nshostingview/layercontentsredrawpolicy.md)
- [updateConstraints()](swiftui/nshostingview/updateconstraints().md)
- [layout()](swiftui/nshostingview/layout().md)
- [safeAreaRegions](swiftui/nshostingview/safearearegions.md)

### Managing keyboard interaction

- [keyDown(with:)](swiftui/nshostingview/keydown(with:).md)
- [keyUp(with:)](swiftui/nshostingview/keyup(with:).md)
- [performKeyEquivalent(with:)](swiftui/nshostingview/performkeyequivalent(with:).md)
- [insertText(_:)](swiftui/nshostingview/inserttext(_:).md)
- [didChangeValue(forKey:)](swiftui/nshostingview/didchangevalue(forkey:).md)
- [makeTouchBar()](swiftui/nshostingview/maketouchbar().md)

### Responding to mouse events

- [mouseDown(with:)](swiftui/nshostingview/mousedown(with:).md)
- [mouseUp(with:)](swiftui/nshostingview/mouseup(with:).md)
- [otherMouseDown(with:)](swiftui/nshostingview/othermousedown(with:).md)
- [otherMouseUp(with:)](swiftui/nshostingview/othermouseup(with:).md)
- [rightMouseDown(with:)](swiftui/nshostingview/rightmousedown(with:).md)
- [rightMouseUp(with:)](swiftui/nshostingview/rightmouseup(with:).md)
- [mouseEntered(with:)](swiftui/nshostingview/mouseentered(with:).md)
- [mouseExited(with:)](swiftui/nshostingview/mouseexited(with:).md)
- [mouseDragged(with:)](swiftui/nshostingview/mousedragged(with:).md)
- [mouseMoved(with:)](swiftui/nshostingview/mousemoved(with:).md)
- [otherMouseDragged(with:)](swiftui/nshostingview/othermousedragged(with:).md)
- [rightMouseDragged(with:)](swiftui/nshostingview/rightmousedragged(with:).md)
- [cursorUpdate(with:)](swiftui/nshostingview/cursorupdate(with:).md)

### Responding to touch events

- [touchesBegan(with:)](swiftui/nshostingview/touchesbegan(with:).md)
- [touchesCancelled(with:)](swiftui/nshostingview/touchescancelled(with:).md)
- [touchesEnded(with:)](swiftui/nshostingview/touchesended(with:).md)
- [touchesMoved(with:)](swiftui/nshostingview/touchesmoved(with:).md)

### Responding to gestures

- [magnify(with:)](swiftui/nshostingview/magnify(with:).md)
- [rotate(with:)](swiftui/nshostingview/rotate(with:).md)
- [scrollWheel(with:)](swiftui/nshostingview/scrollwheel(with:).md)

### Handling drag and drop

- [validRequestor(forSendType:returnType:)](swiftui/nshostingview/validrequestor(forsendtype:returntype:).md)

### Providing a context menu

- [menu(for:)](swiftui/nshostingview/menu(for:).md)

### Responding to actions

- [responds(to:)](swiftui/nshostingview/responds(to:).md)
- [forwardingTarget(for:)](swiftui/nshostingview/forwardingtarget(for:).md)
- [doCommand(by:)](swiftui/nshostingview/docommand(by:).md)

### Configuring the responder behavior

- [acceptsFirstResponder](swiftui/nshostingview/acceptsfirstresponder.md)
- [needsPanelToBecomeKey](swiftui/nshostingview/needspaneltobecomekey.md)

### Managing the view hierarchy

- [viewWillMove(toWindow:)](swiftui/nshostingview/viewwillmove(towindow:).md)
- [viewDidMoveToWindow()](swiftui/nshostingview/viewdidmovetowindow().md)
- [viewDidChangeBackingProperties()](swiftui/nshostingview/viewdidchangebackingproperties().md)
- [viewDidChangeEffectiveAppearance()](swiftui/nshostingview/viewdidchangeeffectiveappearance().md)

### Modifying the frame rectangle

- [intrinsicContentSize](swiftui/nshostingview/intrinsiccontentsize.md)
- [setFrameSize(_:)](swiftui/nshostingview/setframesize(_:).md)
- [firstBaselineOffsetFromTop](swiftui/nshostingview/firstbaselineoffsetfromtop.md)
- [lastBaselineOffsetFromBottom](swiftui/nshostingview/lastbaselineoffsetfrombottom.md)
- [sizingOptions](swiftui/nshostingview/sizingoptions.md)
- [firstTextLineCenter](swiftui/nshostingview/firsttextlinecenter.md)

### Testing for hits

- [hitTest(_:)](swiftui/nshostingview/hittest(_:).md)

### Managing accessibility behaviors

- [accessibilityFocusedUIElement](swiftui/nshostingview/accessibilityfocuseduielement.md)
- [accessibilityChildren()](swiftui/nshostingview/accessibilitychildren().md)
- [accessibilityChildrenInNavigationOrder()](swiftui/nshostingview/accessibilitychildreninnavigationorder().md)
- [accessibilityHitTest(_:)](swiftui/nshostingview/accessibilityhittest(_:).md)
- [accessibilityRole()](swiftui/nshostingview/accessibilityrole().md)
- [accessibilitySubrole()](swiftui/nshostingview/accessibilitysubrole().md)
- [isAccessibilityElement()](swiftui/nshostingview/isaccessibilityelement().md)

### Bridging with SwiftUI

- [sceneBridgingOptions](swiftui/nshostingview/scenebridgingoptions.md)

### Initializers

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

### Instance Properties

- [clipsToBounds](swiftui/nshostingview/clipstobounds.md)

### Instance Methods

- [acceptsFirstMouse(for:)](swiftui/nshostingview/acceptsfirstmouse(for:).md)
- [beginDocument()](swiftui/nshostingview/begindocument().md)
- [didAddSubview(_:)](swiftui/nshostingview/didaddsubview(_:).md)
- [endDocument()](swiftui/nshostingview/enddocument().md)
- [observeValue(forKeyPath:of:change:context:)](swiftui/nshostingview/observevalue(forkeypath:of:change:context:).md)
- [shouldDelayWindowOrdering(for:)](swiftui/nshostingview/shoulddelaywindowordering(for:).md)
- [viewDidEndLiveResize()](swiftui/nshostingview/viewdidendliveresize().md)
- [viewWillStartLiveResize()](swiftui/nshostingview/viewwillstartliveresize().md)
- [willRemoveSubview(_:)](swiftui/nshostingview/willremovesubview(_:).md)

## Relationships

### Inherits From

- [NSView](appkit/nsview.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [NSAccessibilityElementProtocol](appkit/nsaccessibilityelementprotocol.md)
- [NSAccessibilityProtocol](appkit/nsaccessibilityprotocol.md)
- [NSAnimatablePropertyContainer](appkit/nsanimatablepropertycontainer.md)
- [NSAppearanceCustomization](appkit/nsappearancecustomization.md)
- [NSCoding](foundation/nscoding.md)
- [NSDraggingDestination](appkit/nsdraggingdestination.md)
- [NSDraggingSource](appkit/nsdraggingsource.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSStandardKeyBindingResponding](appkit/nsstandardkeybindingresponding.md)
- [NSTouchBarProvider](appkit/nstouchbarprovider.md)
- [NSUserActivityRestoring](appkit/nsuseractivityrestoring.md)
- [NSUserInterfaceItemIdentification](appkit/nsuserinterfaceitemidentification.md)
- [NSUserInterfaceValidations](appkit/nsuserinterfacevalidations.md)

## See Also

### Displaying SwiftUI views in AppKit

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