我有一个基于视图的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:
.