<!--
{
  "availability" : [
    "macOS: 10.10.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSSplitViewController",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSSplitViewController"
  },
  "title" : "NSSplitViewController"
}
-->

# NSSplitViewController

An object that manages an array of adjacent child views, and has a split view object for managing dividers between those views.

```
class NSSplitViewController
```

## Overview

A split view controller manages a set of child views that it displays next to each other in a side-by-side or top-to-bottom arrangement.

A split view controller owns an array of split view items ([`NSSplitViewItem`](/documentation/AppKit/NSSplitViewItem)), each of which has a view controller ([`NSViewController`](/documentation/AppKit/NSViewController)) and corresponding view. The split view controller’s [`splitView`](/documentation/AppKit/NSSplitViewController/splitView) object manages those child views and the dividers between them.

By default, a split view arranges its child views vertically from top to bottom. To specify a horizontal (side-by-side) arrangement, implement the [`isVertical`](/documentation/AppKit/NSSplitView/isVertical) property of the [`splitView`](/documentation/AppKit/NSSplitViewController/splitView) object to return <doc://com.apple.documentation/documentation/Swift/true>.

The split view controller serves as the delegate of its [`splitView`](/documentation/AppKit/NSSplitViewController/splitView) object. If you override a split view delegate method, your override must call `super`.

To use a split view controller, you must use Auto Layout for the child views and to support animations that collapse and reveal child views. For example, if you design a layout that contains two views, a content area and an optional sidebar, you employ Auto Layout constraints to specify whether the content area shrinks or remains the same size when the sidebar becomes visible.

A split view controller employs lazy loading of its views. For example, adding a collapsed split view item as a new child doesn’t load the associated view until it shows.

For more information about using [`NSSplitViewController`](/documentation/AppKit/NSSplitViewController) in your app, see [Navigating Hierarchical Data Using Outline and Split Views](/documentation/AppKit/navigating-hierarchical-data-using-outline-and-split-views).

## Topics

### Configuring and Managing a Split View Controller

[`splitView`](/documentation/AppKit/NSSplitViewController/splitView)

The split view that the split view controller manages.

[`splitViewItem(for:)`](/documentation/AppKit/NSSplitViewController/splitViewItem(for:))

Returns the corresponding split view item for the specified child view controller of the split view controller.

[`splitViewItems`](/documentation/AppKit/NSSplitViewController/splitViewItems)

The array of split view items that correspond to the split view controller’s child view controllers.

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

An item in a split view controller.

### Modifying a Split View Controller

[`addSplitViewItem(_:)`](/documentation/AppKit/NSSplitViewController/addSplitViewItem(_:))

Adds a split view item to the end of the array of split view items.

[`insertSplitViewItem(_:at:)`](/documentation/AppKit/NSSplitViewController/insertSplitViewItem(_:at:))

Adds a split view item to the array of split view items at the specified index position.

[`removeSplitViewItem(_:)`](/documentation/AppKit/NSSplitViewController/removeSplitViewItem(_:))

Removes a specified split view item from the split view controller.

### Managing Sidebars

[`toggleSidebar(_:)`](/documentation/AppKit/NSSplitViewController/toggleSidebar(_:))

Collapses or expands the first sidebar in the split view controller using an animation.

[`minimumThicknessForInlineSidebars`](/documentation/AppKit/NSSplitViewController/minimumThicknessForInlineSidebars)

The minimum thickness for a sidebar before it automatically collapses.

[`automaticDimension`](/documentation/AppKit/NSSplitViewController/automaticDimension)

The default value to apply to a dimension.

### Managing Inspectors

[`toggleInspector(_:)`](/documentation/AppKit/NSSplitViewController/toggleInspector(_:))

Collapses or expands the first inspector in the split view controller using an animation.

### Responding to View Events

[`viewDidLoad()`](/documentation/AppKit/NSSplitViewController/viewDidLoad())

Configures the split view controller after its view loads into memory.

### Supporting Protocol Requirements

[Protocol Implementations](/documentation/AppKit/nssplitviewcontroller-protocol-implementations)

Access the split view controller’s implementations of protocol methods.



---

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)