Jan 31 2017
I’ve just discovered an unwelcome difference between
func tableViewSelectionDidChange(_ notification: Notification)
func outlineViewSelectionDidChange(_ notification: Notification)
(NSOutlineView inherits from NSTableView, and the protocols share a lot of similarities).
When there is no valid selection in an NSOutlineView, outlineviewSelectionDidChange fires, and outlineView.selectedRow is -1.
When there is no valid selection in an NSTableView, tableViewSelectionDidChange does not fire (although tableView.selectedRow is still -1.
This is sub-optimal. In my case, I wanted to enable a ‘remove’ button whenever an item is selected, and disable it when the table has no selection – instead of doing this in selectionDidChange, I also have to call it after removing an item, which makes my code just that little bit messier.