This is documented but in a subtle way, so I thought it’d be worthwhile to mention in a more obvious way.
If you are using NSTableView’s -setDoubleAction: method, the action is only invoked if the cell or column double-clicked upon is uneditable.
Thus, it may not be enough to go:
[theTableView setDoubleAction:@selector(myAction:)];
You may also have to do something like:
[theTableView setDoubleAction:@selector(myAction:)];
[theTableColumn setEditable:NO];
I ran into this just now because I had a single-column table (just a simple table to display a list of stuff, thus the user wasn’t allowed to edit anything) and I wanted to allow a double-clicking on the item (row/cell) to advance the user to the next stage of things (they could also single-click to select the item then click a “Go” button… double-click would just be a shortcut). It actually was working fine under Mac OS X 10.6 Snow Leopard, but the double-click was failing under Mac OS X 10.4 Tiger. Once I made the table column explictly uneditable, it started working and the table received the clicks, the clicks didn’t fall through to the table column.
Also make sure you call [tableView setTarget:self]. You have to set an explicit target for the action.