Instance Method


Asks the delegate to allow or prohibit the specified column to be dragged to a new location.


optional func tableView(_ tableView: NSTableView, shouldReorderColumn columnIndex: Int, toColumn newColumnIndex: Int) -> Bool



The table view that sent the message.


The index of the column being dragged.


The proposed target index of the column.

Return Value

true if the column reordering should be allowed, otherwise false.


When a column is initially dragged by the user, the delegate is first called with a newColumnIndex value of -1. Returning false will disallow that column from being reordered at all. Returning true allows it to be reordered, and the delegate will be called again when the column reaches a new location.

The actual NSTableColumn instance can be retrieved from the tableColumns array.

If this method isn’t implemented, all columns are considered reorderable.

See Also

Moving and Resizing Columns

func tableView(NSTableView, didDrag: NSTableColumn)

Tells the delegate that the specified table column was dragged.

func tableViewColumnDidMove(Notification)

Tells the delegate that a table column was moved by user action.

func tableViewColumnDidResize(Notification)

Tells the delegate that a table column was resized.