gpt4 book ai didi

cocoa - 使用 NSArrayController 划分 NSTableView

转载 作者:行者123 更新时间:2023-12-03 16:05:27 26 4
gpt4 key购买 nike

我正在尝试使用 NSArrayController 和 cocoa 绑定(bind)创建分段的 NSTableView。我正在寻找类似的方法,例如 iOS 中的 NSFetchedResultsController ,您可以在其中设置部分键路径。我想用 NSArrayController 制作类似的东西。

我给你举个例子:我有不同的任务。每个任务都有三个不同优先级之一:低、中或高。任务还具有标题、描述、日期等属性。我想按优先级对任务进行分段或分组(此处的部分键路径是优先级)。

我可以通过绑定(bind)和 NSArrayController 解决这个问题吗?我需要多个 NSArrayController 还是只需要一个?

最佳答案

尽管 NSTableView 可以呈现组行,但不幸的是,它依赖于委托(delegate)或数据源来展平层次结构。它不理解像 UITableViewUITableViewStyleGrouped 这样的备用数据源语义,NSArrayController 也没有与 NSFetchedResultsController 等效的东西。的部分方法。

一个选项是NSOutlineView,它设计用于显示任意深度的分层数据,但它可能会创建比简单两级结构所需的更多工作。 (您可以将大纲 View 绑定(bind)到 NSTreeController ,但树 Controller 的文档记录很差,而且它的设计也很糟糕。)

所以,这是我的建议:

  • 编写您自己的 Controller 类,该类实现 NSTableViewDelegateNSTableViewDataSource
  • 使用按优先级排序的单个数组 Controller ,并编写自己的代码来偏移行索引以容纳节标题。
  • 从节标题上的 tableView:isGroupRow: 返回 YES
  • 不要为此使用绑定(bind)。

您还可以从第三方寻找可重用、具有绑定(bind)功能的 Controller 。

关于cocoa - 使用 NSArrayController 划分 NSTableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5443113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com