NSCellの派生クラス(3)

NSTableViewにNSCell(の派生クラス?)を貼り付けた場合,ダブルクリックのときは(1回目のクリックしか)NSCellのtrackMouse:inRect:ofView:untilMouseUp:が呼び出されない。

NSTableViewを派生させて,mouseDown:にNSLogを噛ませると,NSTableView側のmouseDown:には2回目のクリックも来ている様子。

デバッガで見る限り,NSTableViewのmouseDown:からNSCellのtrackMouse:inRect:ofView:untilMouseUp:が直接呼び出されているようなので,NSCellがダブルクリックを拾えないのは,NSTableViewのmouseDown:の実装がダブルクリックを変に(?)扱っているせいではないかと思われる。

NSTableViewがダブルクリックを拾った時点で,delegate用にtableView:shouldEditTableColumn:row:を呼び出すはずで,delegateがなければそのままNSCellにクリックを渡してくれればよいものの,delegateがなければそのまま(イベントをdequeして)無視,のような感じになっているのではないかと想定。

今日はこの辺で。
酔ってるし。