<!--
{
  "documentType" : "article",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/cocoa-bindings",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Cocoa Bindings"
}
-->

# Cocoa Bindings

Automatically synchronize your data model with your app’s interface using Cocoa Bindings.

## Topics

### Core Controllers

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

A controller that can manage an object’s properties referenced by key-value paths.

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

An abstract class that implements the [`NSEditor`](/documentation/AppKit/NSEditor) and [`NSEditorRegistration`](/documentation/AppKit/NSEditorRegistration) informal protocols required for controller classes.

### Tree-Based Data

[Navigating Hierarchical Data Using Outline and Split Views](/documentation/AppKit/navigating-hierarchical-data-using-outline-and-split-views)

Build a structured user interface that simplifies navigation in your app.

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

A bindings-compatible controller that manages a tree of objects.

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

A node in a tree of nodes.

### Array-Based Data

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

A bindings-compatible controller that manages a collection of objects.

### Key-Value Data

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

A bindings-compatible controller that manages the display and editing of a dictionary of key-value pairs.

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

A set of methods implemented by arranged objects to give access to information about those objects.

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

Values that specify a binding for certain methods.

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

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

[`NSIsControllerMarker(_:)`](/documentation/AppKit/NSIsControllerMarker(_:))

Tests whether a given object is special marker object used for indicating the state of a selection in relation to a key.

  <doc://com.apple.documentation/documentation/ObjectiveC/nskeyvaluebindingcreation>

[Binding dictionary keys](/documentation/AppKit/binding-dictionary-keys)

These constants define keys in the binding information dictionary.

### Data Placeholders

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

[NSPlaceholders](/documentation/AppKit/nsplaceholders)

A set of methods that an object can implement to register default placeholders to be displayed for a binding, when no other placeholder is specified.



---

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)