---
title: "setSelectionFrom(_:to:anchor:highlight:)"
framework: appkit
role: symbol
role_heading: Instance Method
path: "appkit/nsmatrix/setselectionfrom(_:to:anchor:highlight:)"
---

# setSelectionFrom(_:to:anchor:highlight:)

Programmatically selects a range of cells.

## Declaration

```swift
func setSelectionFrom(_ startPos: Int, to endPos: Int, anchor anchorPos: Int, highlight lit: Bool)
```

## Parameters

- `startPos`: The position of the cell that marks where the user would have pressed the mouse button.
- `endPos`: The position of the cell that marks where the user would have released the mouse button.
- `anchorPos`: The position of the cell to treat as the last cell the user would have selected. To simulate Shift-dragging (continuous selection) anchorPos should be the endPos used in the last method call. To simulate Command-dragging (discontinuous selection), anchorPos should be the same as this method call’s startPos.
- `lit`: doc://com.apple.documentation/documentation/Swift/true if cells selected by this method should be highlighted.

## Discussion

Discussion startPos, endPos, and anchorPos are cell positions, counting from 0 at the upper left cell of the receiver, in row order. For example, the third cell in the top row would be number 2. To simulate dragging without a modifier key, deselecting anything that was selected before, call deselectAllCells() before calling this method.

## See Also

### Related Documentation

- [selectedCells](appkit/nsmatrix/selectedcells.md)
- [isSelectionByRect](appkit/nsmatrix/isselectionbyrect.md)

### Selecting and Deselecting Cells

- [selectCell(atRow:column:)](appkit/nsmatrix/selectcell(atrow:column:).md)
- [selectCell(withTag:)](appkit/nsmatrix/selectcell(withtag:).md)
- [selectAll(_:)](appkit/nsmatrix/selectall(_:).md)
- [keyCell](appkit/nsmatrix/keycell.md)
- [deselectAllCells()](appkit/nsmatrix/deselectallcells().md)
- [deselectSelectedCell()](appkit/nsmatrix/deselectselectedcell().md)
