Я пытаюсь заполнить свой NSTable
информацией из массива объектов, но ориентирован на столбцы. Ориентация по умолчанию по умолчанию. Таким образом, каждый информационный объект представлен ряд:Столбец-ориентированные данные объекта в NSTable
Но мне нужно представить информацию об объекте по столбцам:
Я не понимаю, как этого добиться. Что делать, если количество столбцов является переменной во время выполнения и как показать столбец данных объекта, ориентированный? Стандартный NSDataSourceProtocol
с повторным использованием клеток/взгляды не является полезным в моем случае:
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
var text: String = ""
var cellIdentifier: String = ""
guard let item = modelObjectArray?[row] else {
return nil
}
if tableColumn == tableView.tableColumns[0] {
let text = item.name
cellIdentifier = "someIdentifier"
} else if ...{
...
}
if let cell = tableView.make(withIdentifier: cellIdentifier, owner: nil) as? NSTableCellView {
cell.textField?.stringValue = text
return cell
}
return nil
}
Любые идеи?
Спасибо!
Так что я думаю, что есть два ответа здесь: 1) Построить сложный реляционный источник данных, способный заполнить вашу таблицу, и я не думаю, что вы получите ответ, и 2) используйте UICollectionView, у которого есть строки и столбцы, и, вероятно, вы хотите. Я знаю, что это немного сногсшибательно, но вы, кажется, делаете старую круглую привязку/квадратную дыру, вещь. – dylanthelion
@dylanthelion, спасибо за вашу честную обратную связь (не snarky). Я как-то ожидал такого ответа, но вы знаете: надежда - это последняя смерть. Во всяком случае, я обязательно посмотрю подход CollectionView. Никогда не думал об этом. Большое спасибо. – JFS