---
title: NSBrowserDelegate
framework: appkit
role: symbol
role_heading: Protocol
path: appkit/nsbrowserdelegate
---

# NSBrowserDelegate

A set of methods that a browser delegate implements to manage selection, scrolling, sizing, and other behavior.

## Declaration

```swift
protocol NSBrowserDelegate : NSObjectProtocol
```

## Topics

### Getting Browser Information

- [browser(_:isColumnValid:)](appkit/nsbrowserdelegate/browser(_:iscolumnvalid:).md)
- [browser(_:numberOfRowsInColumn:)](appkit/nsbrowserdelegate/browser(_:numberofrowsincolumn:).md)
- [browser(_:numberOfChildrenOfItem:)](appkit/nsbrowserdelegate/browser(_:numberofchildrenofitem:).md)
- [browser(_:titleOfColumn:)](appkit/nsbrowserdelegate/browser(_:titleofcolumn:).md)

### Managing Selection Behavior

- [browser(_:shouldTypeSelectFor:withCurrentSearch:)](appkit/nsbrowserdelegate/browser(_:shouldtypeselectfor:withcurrentsearch:).md)
- [browser(_:typeSelectStringForRow:inColumn:)](appkit/nsbrowserdelegate/browser(_:typeselectstringforrow:incolumn:).md)
- [browser(_:nextTypeSelectMatchFromRow:toRow:inColumn:for:)](appkit/nsbrowserdelegate/browser(_:nexttypeselectmatchfromrow:torow:incolumn:for:).md)

### Managing Selection

- [browser(_:selectCellWith:inColumn:)](appkit/nsbrowserdelegate/browser(_:selectcellwith:incolumn:).md)
- [browser(_:selectRow:inColumn:)](appkit/nsbrowserdelegate/browser(_:selectrow:incolumn:).md)
- [browser(_:selectionIndexesForProposedSelection:inColumn:)](appkit/nsbrowserdelegate/browser(_:selectionindexesforproposedselection:incolumn:).md)

### Accessing Components

- [browser(_:child:ofItem:)](appkit/nsbrowserdelegate/browser(_:child:ofitem:).md)
- [browser(_:isLeafItem:)](appkit/nsbrowserdelegate/browser(_:isleafitem:).md)
- [browser(_:shouldEditItem:)](appkit/nsbrowserdelegate/browser(_:shouldedititem:).md)
- [browser(_:objectValueForItem:)](appkit/nsbrowserdelegate/browser(_:objectvalueforitem:).md)
- [browser(_:setObjectValue:forItem:)](appkit/nsbrowserdelegate/browser(_:setobjectvalue:foritem:).md)
- [rootItem(for:)](appkit/nsbrowserdelegate/rootitem(for:).md)
- [browser(_:previewViewControllerForLeafItem:)](appkit/nsbrowserdelegate/browser(_:previewviewcontrollerforleafitem:).md)
- [browser(_:headerViewControllerForItem:)](appkit/nsbrowserdelegate/browser(_:headerviewcontrollerforitem:).md)

### Managing Columns

- [browser(_:createRowsForColumn:in:)](appkit/nsbrowserdelegate/browser(_:createrowsforcolumn:in:).md)
- [browser(_:willDisplayCell:atRow:column:)](appkit/nsbrowserdelegate/browser(_:willdisplaycell:atrow:column:).md)
- [browser(_:didChangeLastColumn:toColumn:)](appkit/nsbrowserdelegate/browser(_:didchangelastcolumn:tocolumn:).md)

### Scrolling

- [browserWillScroll(_:)](appkit/nsbrowserdelegate/browserwillscroll(_:).md)
- [browserDidScroll(_:)](appkit/nsbrowserdelegate/browserdidscroll(_:).md)

### Dragging

- [browser(_:canDragRowsWith:inColumn:with:)](appkit/nsbrowserdelegate/browser(_:candragrowswith:incolumn:with:).md)
- [browser(_:draggingImageForRowsWith:inColumn:with:offset:)](appkit/nsbrowserdelegate/browser(_:draggingimageforrowswith:incolumn:with:offset:).md)
- [browser(_:validateDrop:proposedRow:column:dropOperation:)](appkit/nsbrowserdelegate/browser(_:validatedrop:proposedrow:column:dropoperation:).md)
- [browser(_:acceptDrop:atRow:column:dropOperation:)](appkit/nsbrowserdelegate/browser(_:acceptdrop:atrow:column:dropoperation:).md)
- [browser(_:writeRowsWith:inColumn:to:)](appkit/nsbrowserdelegate/browser(_:writerowswith:incolumn:to:).md)
- [browser(_:namesOfPromisedFilesDroppedAtDestination:forDraggedRowsWith:inColumn:)](appkit/nsbrowserdelegate/browser(_:namesofpromisedfilesdroppedatdestination:fordraggedrowswith:incolumn:).md)

### Sizing

- [browser(_:shouldSizeColumn:forUserResize:toWidth:)](appkit/nsbrowserdelegate/browser(_:shouldsizecolumn:foruserresize:towidth:).md)
- [browser(_:sizeToFitWidthOfColumn:)](appkit/nsbrowserdelegate/browser(_:sizetofitwidthofcolumn:).md)
- [browserColumnConfigurationDidChange(_:)](appkit/nsbrowserdelegate/browsercolumnconfigurationdidchange(_:).md)
- [browser(_:heightOfRow:inColumn:)](appkit/nsbrowserdelegate/browser(_:heightofrow:incolumn:).md)

### Displaying Cell Content

- [browser(_:shouldShowCellExpansionForRow:column:)](appkit/nsbrowserdelegate/browser(_:shouldshowcellexpansionforrow:column:).md)

### Instance Methods

- [browser(_:draggingSession:endedAt:operation:)](appkit/nsbrowserdelegate/browser(_:draggingsession:endedat:operation:).md)
- [browser(_:draggingSession:willBeginAt:forRowsWith:column:)](appkit/nsbrowserdelegate/browser(_:draggingsession:willbeginat:forrowswith:column:).md)
- [browser(_:pasteboardWriterForRow:column:)](appkit/nsbrowserdelegate/browser(_:pasteboardwriterforrow:column:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
