---
title: "browser(_:writeRowsWith:inColumn:to:)"
framework: appkit
role: symbol
role_heading: Instance Method
path: "appkit/nsbrowserdelegate/browser(_:writerowswith:incolumn:to:)"
---

# browser(_:writeRowsWith:inColumn:to:)

Determines whether a drag operation can proceed. This method is required for a browser to be a drag source.

## Declaration

```swift
@MainActor optional func browser(_ browser: NSBrowser, writeRowsWith rowIndexes: IndexSet, inColumn column: Int, to pasteboard: NSPasteboard) -> Bool
```

## Parameters

- `browser`: The browser.
- `rowIndexes`: The indexes of the rows the user is dragging.
- `column`: The index of the column containing the dragged rows.
- `pasteboard`: The pasteboard containing the content from the dragged rows.

## Return Value

Return Value true to allow the dragging operation to proceed (see discussion for further details); false to disallow it.

## Discussion

Discussion This method is called after a drag operation has been allowed to start (browser(_:canDragRowsWith:inColumn:with:) returns true), but before it actually begins.

## See Also

### 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(_:namesOfPromisedFilesDroppedAtDestination:forDraggedRowsWith:inColumn:)](appkit/nsbrowserdelegate/browser(_:namesofpromisedfilesdroppedatdestination:fordraggedrowswith:incolumn:).md)
