我希望将NSTreeController
绑定到NSOutlineView
,然后绑定到treeController.bind(NSContentArrayBinding,
toObject: viewModel,
withKeyPath: "items",
options: nil)
outlineView.bind(NSContentBinding,
toObject: treeController,
withKeyPath: "arrangedObjects",
options: nil)
outlineView.bind(NSSortDescriptorsBinding,
toObject: treeController,
withKeyPath: "sortDescriptors",
options: nil)
outlineView.bind(NSSortDescriptorsBinding,
toObject: treeController,
withKeyPath: "selectionIndexPaths",
options: nil)
:
items
viewModel
中的 let column = NSTableColumn(identifier: "0")
column.bind(NSValueBinding,
toObject: treeController,
withKeyPath: "arrangedObjects.displayName"),
options: nil)
outlineView.addTableColumn(column)
包含一个对象,该对象又有自己的子数组。
但是,在执行上述绑定时,UI中不会显示任何内容。我还尝试添加一栏:
foreach (PSObject xx in results)
{
PSMemberInfo ObjectId = xx.Properties["ObjectId"];
PSMemberInfo DisplayName = xx.Properties["DisplayName"];
}
但无济于事,我仍然无法在用户界面中显示任何结果。
我缺少什么来使绑定工作? NSOutlineView按预期呈现,只是没有项目。
(在Objective-C中随意回答,我对语言选择并不挑剔)
答案 0 :(得分:2)
您需要设置树控制器的childrenKeyPath
。否则,树控制器无法理解它所指向的数据结构。 childrenKeyPath
应该是相对于items
数组元素的关键路径,它给出了该元素子元素的数组。