我正在尝试使用NSTableView
和 cocoa 绑定(bind)创建分段的NSArrayController
。我正在寻找类似的方法,例如iOS中的NSFetchedResultsController
,您可以在其中设置分区键路径。我想用NSArrayController
做类似的事情。
我举一个例子:
我有不同的任务。每个任务具有三个不同的优先级之一,低,中或高。任务还具有标题,描述,日期等属性。我想按优先级对任务进行分组或分组(此处的分区键路径为优先级)。
您可以使用绑定(bind)和NSArrayController
解决此问题吗?我需要多个NSArrayController
还是一个?
最佳答案
尽管NSTableView
可以呈现组行,但不幸的是,它依赖于委托(delegate)或数据源来展平层次结构。它无法理解UITableView
的UITableViewStyleGrouped
等替代数据源语义,而且NSArrayController
也不等同于NSFetchedResultsController
的section方法。
一种选择是NSOutlineView
,它设计用于显示任意深度的分层数据,但它可能会产生比简单的两级结构所需的工作更多的工作。 (您可以将轮廓 View 绑定(bind)到NSTreeController
,但是树形 Controller 的文档记录不充分,并且在启动时,它的设计不正确。)
所以,这是我的建议:
NSTableViewDelegate
和NSTableViewDataSource
的 Controller 类。 YES
返回tableView:isGroupRow:
。 您还可以从第三方寻求可重用的,具有绑定(bind)功能的 Controller 。
关于cocoa - 使用NSArrayController的NSTableView节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5443113/