<!--
{
  "documentType" : "article",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/nssplitviewcontroller-protocol-implementations",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Protocol Implementations"
}
-->

# Protocol Implementations

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

## Discussion

[`NSSplitViewController`](/documentation/AppKit/NSSplitViewController) conforms to [`NSSplitViewDelegate`](/documentation/AppKit/NSSplitViewDelegate) to serve as its split view’s delegate. This page lists the split view controller type’s implementations of those protocol methods. If you override these methods in a subclass, you must call `super`.

[`NSSplitViewController`](/documentation/AppKit/NSSplitViewController) also conforms to [`NSUserInterfaceValidations`](/documentation/AppKit/NSUserInterfaceValidations) by implementing [`validateUserInterfaceItem(_:)`](/documentation/AppKit/NSSplitViewController/validateUserInterfaceItem(_:)).

## Topics

### Configuring and Drawing View Dividers

[`func splitView(NSSplitView, effectiveRect: NSRect, forDrawnRect: NSRect, ofDividerAt: Int) -> NSRect`](/documentation/AppKit/NSSplitViewController/splitView(_:effectiveRect:forDrawnRect:ofDividerAt:))

Allows the split view controller to modify the rectangle where mouse clicks initiate divider dragging.

[`func splitView(NSSplitView, shouldHideDividerAt: Int) -> Bool`](/documentation/AppKit/NSSplitViewController/splitView(_:shouldHideDividerAt:))

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

[`func splitView(NSSplitView, additionalEffectiveRectOfDividerAt: Int) -> NSRect`](/documentation/AppKit/NSSplitViewController/splitView(_:additionalEffectiveRectOfDividerAt:))

Allows the split view controller to return an additional rectangle where mouse clicks can initiate divider dragging.

### Managing Subviews

[`func splitView(NSSplitView, canCollapseSubview: NSView) -> Bool`](/documentation/AppKit/NSSplitViewController/splitView(_:canCollapseSubview:))

Allows the split view controller to determine whether the user can collapse and expand the specified subview.

[`func splitView(NSSplitView, shouldCollapseSubview: NSView, forDoubleClickOnDividerAt: Int) -> Bool`](/documentation/AppKit/NSSplitViewController/splitView(_:shouldCollapseSubview:forDoubleClickOnDividerAt:))

Allows the split view controller to determine if a subview collapses in response to a double click.

### Validating User Interface Items

[`func validateUserInterfaceItem(any NSValidatedUserInterfaceItem) -> Bool`](/documentation/AppKit/NSSplitViewController/validateUserInterfaceItem(_:))

Returns a Boolean value that indicates whether to enable the specified item.



---

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)