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

# NSSplitViewDelegate

A set of optional methods that a delegate of a split view implements.

```
protocol NSSplitViewDelegate : NSObjectProtocol
```

## Topics

### Managing Subviews

[`-  splitViewWillResizeSubviews:`](/documentation/AppKit/NSSplitViewDelegate/splitViewWillResizeSubviews(_:))

Notifies the delegate when the split view is about to resize its subviews.

[`-  splitViewDidResizeSubviews:`](/documentation/AppKit/NSSplitViewDelegate/splitViewDidResizeSubviews(_:))

Notifies the delegate when the split view resizes its subviews.

[`-  splitView:canCollapseSubview:`](/documentation/AppKit/NSSplitViewDelegate/splitView(_:canCollapseSubview:))

Allows the delegate to determine whether the user can collapse and expand the specified subview.

[`-  splitView:shouldCollapseSubview:forDoubleClickOnDividerAtIndex:`](/documentation/AppKit/NSSplitViewDelegate/splitView(_:shouldCollapseSubview:forDoubleClickOnDividerAt:))

Allows a delegate to determine if a subview collapses in response to a double click.

### Configuring and Drawing View Dividers

[`-  splitView:effectiveRect:forDrawnRect:ofDividerAtIndex:`](/documentation/AppKit/NSSplitViewDelegate/splitView(_:effectiveRect:forDrawnRect:ofDividerAt:))

Allows the delegate to modify the rectangle where mouse clicks initiate divider dragging.

[`-  splitView:shouldHideDividerAtIndex:`](/documentation/AppKit/NSSplitViewDelegate/splitView(_:shouldHideDividerAt:))

Allows the delegate to determine whether the user can drag a divider or adjust it off the edge of the split view.

[`-  splitView:additionalEffectiveRectOfDividerAtIndex:`](/documentation/AppKit/NSSplitViewDelegate/splitView(_:additionalEffectiveRectOfDividerAt:))

Allows the delegate to return an additional rectangle where mouse clicks can initiate divider dragging.

### Constraining Split Position

[`-  splitView:constrainSplitPosition:ofSubviewAt:`](/documentation/AppKit/NSSplitViewDelegate/splitView(_:constrainSplitPosition:ofSubviewAt:))

Allows the delegate to constrain the divider to certain positions.

### Adjusting Subviews Manually

[`-  splitView:constrainMinCoordinate:ofSubviewAt:`](/documentation/AppKit/NSSplitViewDelegate/splitView(_:constrainMinCoordinate:ofSubviewAt:))

Allows the delegate to constrain the minimum coordinate limit of a divider when the user drags it.

[`-  splitView:constrainMaxCoordinate:ofSubviewAt:`](/documentation/AppKit/NSSplitViewDelegate/splitView(_:constrainMaxCoordinate:ofSubviewAt:))

Allows the delegate to constrain the maximum coordinate limit of a divider when the user drags it.

[`-  splitView:resizeSubviewsWithOldSize:`](/documentation/AppKit/NSSplitViewDelegate/splitView(_:resizeSubviewsWithOldSize:))

Allows the delegate to specify custom sizing behavior for the subviews of the split view.

[`-  splitView:shouldAdjustSizeOfSubview:`](/documentation/AppKit/NSSplitViewDelegate/splitView(_:shouldAdjustSizeOfSubview:))

Allows the delegate to specify whether to resize the subview.

## Relationships

### Inherits From

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Conforming Types

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

---

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)