NSOutlineViewのNSTableCellViewを編集状態にする方法

View basedなNSOutlineViewでダブルクリックされたセルを編集状態にする方法です。

NSOutlineViewを継承してfunc mouseDown(with event: NSEvent)
オーバーライドする必要があります。

class MyOutlineView: NSOutlineView {
    override func mouseDown(with event: NSEvent) {
        super.mouseDown(with: event)

        guard event.clickCount >= 2 else {
            return
        }

        let point = convert(event.locationInWindow, from: nil)
        let selectedRow = row(at: point)

        guard selectedRow != NSOutlineViewDropOnItemIndex else {
            return
        }

        editColumn(0, row: selectedRow, with: nil, select: true)
    }
}

func editColumn(_ column: Int, row: Int, with event: NSEvent?, select: Bool)
呼ぶことで編集状態になります。
このメソッドは指定されたセルが 編集可能(isEditable == true) なら編集状態にしてくれます。