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) なら編集状態にしてくれます。