ビューベースNSTableView
で、特定の行の外観をカスタマイズしようとしています。
タイトルに記載されているデリゲート メソッドを実装する必要があることは理解しています。しかし、私はそれを行う方法がわかりません。
ドキュメントには次のように記載されています。
デリゲート メソッド tableView:rowViewForRow: を使用して、行ビューをカスタマイズできます。通常、Interface Builder を使用して、テーブル内の NSTableRowView プロトタイプ行を設計およびレイアウトします。プロトタイプ セルと同様に、プロトタイプ行は実行時にプログラムによって取得されます。NSTableRowView サブクラスの実装は完全にオプションです。
ただし、セルとは異なりNSTableRowView
、インターフェイス ビルダーにはクラスがなく、「プロトタイプ」行ビューをセットアップする方法も明確ではありません。
私はこのようなことを試みています(Swift 3):
func tableView(_ tableView: NSTableView, rowViewForRow row: Int) -> NSTableRowView?
{
if (row % 4) == 0 {
// ..................................................
// [ A ] SPECIAL ROW:
if let rowView = tableView.make(withIdentifier: "SpecialRow", owner: self) as? NSTableRowView {
rowView.backgroundColor = NSColor.gray()
return rowView
}
else {
return nil
}
// ^ Always returns nil (Because I don't know how
// to setup the prototype in Interface Builder)
}
else{
// ..................................................
// [ B ] NORMAL ROW (No customization needed)
return nil
}
}
セルに対して同様のコードが機能しています-つまり、-tableView:viewForTableColumn:row:
.