У меня есть NSTableView
, сконфигурированный в Interface Builder, который использует несколько представлений ячейки по умолчанию. Однако представление ячейки первого столбца должно быть создано из пользовательского класса. Как реализовать метод NSTableViewDataSource
tableView.viewForTableColumn()
, чтобы он создавал представления ячейки по умолчанию для остальных столбцов?Как заставить NSTableView использовать пользовательский вид ячеек, смешанный с предустановленными ячейками?
Вот мой метод до сих пор:
func tableView(tableView:NSTableView, viewForTableColumn tableColumn:NSTableColumn?, row:Int) -> NSView?
{
/* Create custom cell view for first column. */
if (tableColumn?.identifier == "nameColumn")
{
let view = tableView.makeViewWithIdentifier("nameCellView", owner: nil) as! NameTableCellView;
return view;
}
/* Return default cell views (defined in IB) for the rest. */
return tableView.viewAtColumn(??, row: row, makeIfNecessary: true); // How to get column index??
}
Как получить правильный индекс столбца для tableView.viewAtColumn()
? tableView.columnForView()
или tableView.columnWithIdentifier()
, очевидно, не являются никаким вариантом в этом случае.
Да, я думаю, что другого пути нет. Самый быстрый способ - предоставить столбцам и ячейкам каждый их одинаковый идентификатор, например. 0, 1, 2, 3 ... и т. Д., А затем создать ячейки с указанным идентификатором столбца. – BadmintonCat