NSTableview
私はNSArrayController
にバインドされています。 selectionIndexes
は、arrayControllerのselectionIndexes
にバインドされています。 このarrayControllerはNSManagedObjectContext
にバインドされています。NSTableViewで選択行を取得するには? view(atColumn:row:makeIfNecessary :) return nil
arrayControllerのselectsInsertedObjects
がtrueであるため、オブジェクトをNSManagedObjectContext
に追加すると、tableViewSelectionDidChange(_ notification: Notification)
が呼び出されます。私はここにブレークポイントを設定し、コンソールでのデバッグは、(私は自分自身にテーブルビューのデリゲートを設定):私はテーブルビューでサーバル行を見ることができます
(lldb) po selectedRow
11
(lldb) po selectedCell()
nil
(lldb) po numberOfColumns
2
(lldb) po numberOfRows
12
(lldb) po view(atColumn: 0, row: 0, makeIfNecessary: false)
nil
(lldb) po view(atColumn: 0, row: selectedRow, makeIfNecessary: false)
nil
。
しかし、なぜpo view(atColumn: 0, row: 0, makeIfNecessary: false)
が返されますか?
デリゲートメソッドtableViewSelectionDidChange(_ notification: Notification)
で選択した行を取得するにはどうすればよいですか?
選択した行は11です。セルビューは再利用されます。テーブルビューは、すべての行を描画する1つのビューを作成できます。あなたは何をしたいですか? – Willeke
@Willeke選択した行を取得してプロパティを変更したいとします。新しいものを作成しないでください。 – LinShiwei
'tableView(_:viewFor:row:)'のプロパティを変更してください。 – Willeke