Also, Apple's own sample code for DragNDropOutlineView, which is linked to in the documentation for clickedRow, demonstrates using clickedRow in tableView(:shouldSelectRow:), which was the older version of tableView(:selectionIndexesForProposedSelection:). So if Apple's sample code uses it this way, I figure it should be fine.
Great to know. Thanks for sharing that. Then it may be fine to read clickedRow in -tableView:selectionIndexesForProposedSelection: then. In my humble opinion Apple should add a note in the documentation like:
The value of this property is meaningful in the target object’s implementation of the action, the double-action methods, and in the -tableView:selectionIndexesForProposedSelection:. delegate method
Or maybe they just think it is so plainly obvious.
I usually do my click specific stuff in the action method but given your unique requirements what you have might be the best way. I'm hesitant to offer any other possible solutions since I'm not on macOS 27 yet and things are changing.
I'm definitely not looking forward to this gesture recognizer transition. I override -mouseDown: -mouseDragged: -mouseUp: etc. in like a million different places. Hope it goes easy and doesn't turn into two weeks of work just treading water.