NSTableView
/ NSOutlineView
и его документация беспорядок.
Параметр byItem
outlineView(_:objectForValue:byItem:)
- это объект, представленный строкой, а возвращаемое значение - это объект, представленный ячейкой. Сравните tableView (_: objectValueFor: row:) возвращаемое значение
Элемент в источнике данных в указанном столбце таблицы представления.
См. Также свойство objectValue NSTableCellView
Объект, представляющий данные ячейки.
objectValue автоматически устанавливается таблицей при использовании привязок или является объектом, возвращаемым методом протокола NSTableViewDataSource tableView (_: objectValueFor: row:).
В действительности при связывании содержимого табличного представления objectValue
является объектом строки.
NSOutlineView.h говорит о outlineView(_:objectValueFor:byItem:)
:
ПРИМЕЧАНИЕ: этот метод является необязательным для OutlineView на основе вида.
документация Apple
Хотя этот метод помечен как @optional в протоколе, вы должны реализовать этот метод, если вы не предоставляете данные для представления структуры с использованием привязок Какао.
действительно только для представлений на основе ячеек.
Если вы установите значение элементов управления в ячейках в outlineView(_:viewFor:item:)
, тогда вам не нужно будет реализовывать outlineView(_:objectValueFor:byItem:)
.
Реализуйте outlineView(_:objectValueFor:byItem:)
, если хотите использовать свойство objectValue
представления ячейки. Например, при привязке значения элементов управления в ячейке и без привязки к содержимому представления структуры.
См. Также Заполнение табличного представления программно