NSOutlineView
NSOutlineView is a Cocoa AppKit control for displaying hierarchical data in macOS applications. It is a subclass of NSTableView and presents items in a grouped, expandable list. Each item can have children, which can be shown or hidden by expanding or collapsing the item. NSOutlineView is data-driven and relies on the NSOutlineViewDataSource protocol to obtain the structure of the data and on the NSOutlineViewDelegate protocol to respond to user actions and customize presentation.
Key data source methods provide the tree structure: number of children of a given item, the child
NSOutlineView supports common table features such as multiple selection, editing, reordering by drag and drop, and
Developers typically implement a custom data model for the tree, implement the required data source methods,