---
title: "outlineView(_:child:ofItem:)"
framework: appkit
role: symbol
role_heading: Instance Method
path: "appkit/nsoutlineviewdatasource/outlineview(_:child:ofitem:)"
---

# outlineView(_:child:ofItem:)

Returns the child item at the specified index of a given item.

## Declaration

```swift
@MainActor optional func outlineView(_ outlineView: NSOutlineView, child index: Int, ofItem item: Any?) -> Any
```

## Parameters

- `outlineView`: The outline view that sent the message.
- `index`: The index of the child item from item to return.
- `item`: An item in the data source.

## Return Value

Return Value The child item at index of item. If item is nil, returns the appropriate child item of the root object.

## Discussion

Discussion Children of a given parent item are accessed sequentially. In order for the collapsed state of the outline view to remain consistent when it is reloaded you must always return the same object for a specified child and item. important: While this method is marked as @optional in the protocol, you must implement this method if you are not providing the data for the outline view using Cocoa bindings. Do not call reloadData() from this method. Special Considerations The outlineView(_:child:ofItem:) method is called very frequently, so it must be efficient.

## See Also

### Related Documentation

- [outlineView(_:numberOfChildrenOfItem:)](appkit/nsoutlineviewdatasource/outlineview(_:numberofchildrenofitem:).md)
- [Outline View](appkit/outline-view.md)

### Instance Methods

- [outlineView(_:acceptDrop:item:childIndex:)](appkit/nsoutlineviewdatasource/outlineview(_:acceptdrop:item:childindex:).md)
- [outlineView(_:draggingSession:endedAt:operation:)](appkit/nsoutlineviewdatasource/outlineview(_:draggingsession:endedat:operation:).md)
- [outlineView(_:draggingSession:willBeginAt:forItems:)](appkit/nsoutlineviewdatasource/outlineview(_:draggingsession:willbeginat:foritems:).md)
- [outlineView(_:isItemExpandable:)](appkit/nsoutlineviewdatasource/outlineview(_:isitemexpandable:).md)
- [outlineView(_:itemForPersistentObject:)](appkit/nsoutlineviewdatasource/outlineview(_:itemforpersistentobject:).md)
- [outlineView(_:namesOfPromisedFilesDroppedAtDestination:forDraggedItems:)](appkit/nsoutlineviewdatasource/outlineview(_:namesofpromisedfilesdroppedatdestination:fordraggeditems:).md)
- [outlineView(_:numberOfChildrenOfItem:)](appkit/nsoutlineviewdatasource/outlineview(_:numberofchildrenofitem:).md)
- [outlineView(_:objectValueFor:byItem:)](appkit/nsoutlineviewdatasource/outlineview(_:objectvaluefor:byitem:).md)
- [outlineView(_:pasteboardWriterForItem:)](appkit/nsoutlineviewdatasource/outlineview(_:pasteboardwriterforitem:).md)
- [outlineView(_:persistentObjectForItem:)](appkit/nsoutlineviewdatasource/outlineview(_:persistentobjectforitem:).md)
- [outlineView(_:setObjectValue:for:byItem:)](appkit/nsoutlineviewdatasource/outlineview(_:setobjectvalue:for:byitem:).md)
- [outlineView(_:sortDescriptorsDidChange:)](appkit/nsoutlineviewdatasource/outlineview(_:sortdescriptorsdidchange:).md)
- [outlineView(_:updateDraggingItemsForDrag:)](appkit/nsoutlineviewdatasource/outlineview(_:updatedraggingitemsfordrag:).md)
- [outlineView(_:validateDrop:proposedItem:proposedChildIndex:)](appkit/nsoutlineviewdatasource/outlineview(_:validatedrop:proposeditem:proposedchildindex:).md)
- [outlineView(_:writeItems:to:)](appkit/nsoutlineviewdatasource/outlineview(_:writeitems:to:).md)
