継承・準拠による標準関数
データを提供する関数 (NSTableViewDataSource)
テーブルの「構造」や「中身」を管理する役割です。
numberOfRows(in:)- 役割: テーブルに表示する行の総数を返します。
- タイミング: テーブルの初期表示時や
reloadData()が呼ばれた時に真っ先に実行されます。
tableView(_:sortDescriptorsDidChange:)- 役割: ヘッダーをクリックして「並び替え(ソート)」が発生した時に呼ばれます。
- 活用: ここで
store.rowsをソートしてreloadData()することで、並び替え機能を実装できます。
見た目と挙動を制御する関数 (NSTableViewDelegate)
「セルに何を表示するか」「ユーザーが何をしたか」を管理する役割です。
tableView(_:viewFor:tableColumn:row:)- 役割: 指定された「行」と「列」に表示するための **View(セル)**を返します。
- 活用:
makeViewでセルを再利用し、データを流し込みます 。
tableView(_:heightOfRow:)- 役割: 行の高さを数値(CGFloat)で返却します。
- 活用: データの文字量に応じて行の高さを動的に変えたい場合に便利です。
tableViewSelectionDidChange(_:)- 役割: ユーザーが**行を選択(クリック)**した時に通知されます。
- 活用: 選択された行のインデックスを取得して、詳細画面を表示するなどの処理に使います。
tableView(_:shouldSelectRow:)- 役割: ユーザーがその行を選択して良いかどうかを
Boolで返します。 - 活用: 特定の行(例:編集禁止行)をクリックできないように制限できます。
- 役割: ユーザーがその行を選択して良いかどうかを
列の操作に関する関数 (NSTableViewDelegate)
列の幅や順番が変わった時の通知です。
tableViewColumnDidResize(_:)- 役割: ユーザーがマウスで**列の幅(Width)**を変えた時に呼ばれます。
- 活用: 列の幅を保存しておき、次回起動時に復元したい場合に利用します。
tableViewColumnDidMove(_:)- 役割: ユーザーがドラッグして列の順番を入れ替えた時に呼ばれます。
コメント