<!--
{
  "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:forDoubleClickOnDividerAt:)`](/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:ofDividerAt:)`](/documentation/AppKit/NSSplitViewDelegate/splitView(_:effectiveRect:forDrawnRect:ofDividerAt:))

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

[`splitView(_:shouldHideDividerAt:)`](/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(_:additionalEffectiveRectOfDividerAt:)`](/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.



---

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)