Hello,
I'm coming across some bizarre behaviour in a view-based NSTableView and I can't work out what's causing it: single-clicking to select a row causes the row to start editing after a second. This happens only in two of my table views (one using Auto-Layout, the other not, so that's not a factor); I'm not seeing this behaviour in any of my other view-based table views that allow editing, even with apparently the same settings.
I'm aware that standard behaviour is that if you select a row, and then click on it again, it will start editing. But also, I thought that setting up a doubleAction on a table view prevented this behaviour. And yet, one of my table views with this behaviour has a double action on it (to start editing on double-click). Moreover, editing isn't starting on a row that you click on which is already selected; editing is beginning when you simply click on an un-selected row to select it. After a slight delay, it begins editing.
I tried subclassing NSTextField and setting a breakpoint -becomeFirstResponder to see what was triggering the edit. This wasn't very informative - it just tells me that private Apple methods are starting the edit after a delay:
[NSTableRowData _delayMakeFirstResponder]
I've been comparing the table against others that don't have the problem, and I can't find any differences: I'm calling the same methods in code, and setting them up the same in IB. I even went through line-by-line in the .xib file comparing two tables, but the XML was much the same for both, and experimenting to make them exactly the same did not help. I also deleted the table view in IB and rebuilt it - it has the same problem.
The behaviour is hugely annoying - has anybody else experienced this, and does anyone know how to fix it? (I'm aware that I haven't provided an awful lot to go on, but there is nothing special about these tables compared to other tables that work as expected; they are both populated an NSArrayController, but all options for the tables and array controlles are the same as other tables.)
Many thanks,
Keith