У меня есть вид NSTableView
, и я пытаюсь настроить внешний вид некоторых строк.Как прототип NSTableRowView в построителе интерфейса
Я понимаю, что мне нужно реализовать метод делегата, упомянутый в названии; Однако я не уверен, как это сделать.
В документации сказано:
Вы можете использовать метод делегата Tableview: rowViewForRow: настроить взгляды строк. Обычно вы используете Interface Builder для проектирования и компоновки строк прототипа NSTableRowView в таблице. Как и в прототипах , прототипные строки извлекаются программно во время выполнения. Внедрение подклассов NSTableRowView полностью необязательно.
Однако, в отличие от клеток, нет NSTableRowView
класса в Interface Builder, и не ясно, как настроить «прототип» вид строки.
Я пытаюсь что-то вроде этого (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
}
}
У меня есть подобный код работает для клеток -i.e., -tableView:viewForTableColumn:row:
.