Coordinatorクラス

継承・準拠による標準関数

データを提供する関数 (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(_:)
    • 役割: ユーザーがドラッグして列の順番を入れ替えた時に呼ばれます。

コメント

タイトルとURLをコピーしました