У меня есть простой NSOutlineView, init через swift, с 2 столбцами. Я сделал следующий очень простой источник данных, надеясь проверить его таким образом, но, возможно, этот формат недопустим. Я предполагаю, что при просмотре таблицы только запросы, так что это не вызовет бесконечный цикл.NSOutlineView не допускает расширения
В результате получается таблица с четырьмя строками, 2 столбиками с «Name» и «Value», но без кнопок расширения.
Я реализовал isExpandable, как упоминалось в сообщении Obj-C с похожим именем, и добавил столбцы.
Есть ли что-то еще, что мне нужно сделать, чтобы настроить NSOutlineView с возможностью расширения элементов, или я должен попытаться еще более реалистичный тест DataSource:
import Cocoa
class OutlineDataSource : NSObject,NSOutlineViewDataSource
{
var a = "Name"
var b = "Value"
var column1 : NSTableColumn
var column2 : NSTableColumn
init(column1:NSTableColumn,column2:NSTableColumn) {
self.column1 = column1
self.column2 = column2
}
func outlineView(outlineView: NSOutlineView, numberOfChildrenOfItem item: AnyObject?) -> Int
{
return 4;
}
func outlineView(outlineView: NSOutlineView, child index: Int, ofItem item: AnyObject?) -> AnyObject
{
return a
}
func outlineView(outlineView: NSOutlineView, isItemExpandable item: AnyObject) -> Bool
{
return true;
}
func outlineView(outlineView: NSOutlineView, objectValueForTableColumn tableColumn: NSTableColumn?, byItem item: AnyObject?) -> AnyObject?
{
if (tableColumn == column1)
{
return a
}
return b
}
}
Это абсолютно важная часть работы NSOutlineView, и документация Apple не обращает внимания на их страницу NSOutlineView. Они идут о делегате представления и источнике данных. По крайней мере, при программном создании NSOutlineView вместе с dataSource и NSTableColumn (s) установка этого параметра имеет решающее значение - более важно, чем установка делегата (который я оставил нуль и вижу, что он все еще работает). Опять же, в симптом отсутствуют треугольники и нет возможности расширить элементы, видимые с корневого уровня. Это был правильный ответ для моего дела. – WeakPointer