gpt4 book ai didi

cocoa - NSTableView 和 NSCollectionView 之间的区别

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

我正在尝试决定开发我的 Snow Leopard 应用程序时应采取哪条路径。首先,我应该以明显的差异作为序言:

NSTableView 可以有多列数据来表示同一数据“元素”(一行)的不同部分,其中 NSCollectionView 也可以显示数据网格,但每个行+列组合都是它自己的元素。出于我的目的,假设我正在处理单个列。

  1. 据我所知,NSCollectionView 项是 NSView,它们都必须具有相同的尺寸。另外,与 NSTableView 不同,collectionview 项被复制到 NSCollectionView,而不是根据 dataSource 的需要提供(我对此不确定,如果我错了,请纠正我)。

  2. 如果您决定自定义行的显示,
  3. NSTableView 使用 NSCell。由于 NSCell 不是 NSResponder,因此如何处理事件(如果我想向单元格添加某种附件,例如 iTunes 中的箭头如何工作(尽管,iTunes 是 Carbon)。我在 IB 中看到了一些 NSCell 子类,它们似乎与它们的 NSControl 兄弟等效,但是如果我想要 MySweetView 该怎么办NSCell 中的 对象?)。

  4. 两者在绑定(bind)方面的工作原理似乎相同,对吗?

  5. 最后,NSCollectionView 似乎与其元素的动画配合得很好(例如用于重新排列项目,或过滤它们)。 NSTableView 可以对其行执行此操作吗?

我还应该考虑什么?

最佳答案

  1. 这里的区别在于,在 TableView 中,每一行都是一个项目,而列显示该项目的不同方面(属性)。在 Collection View 中,每个行列交叉点都是一个项目。
  2. 我还没有这样做,但尝试在 TableView 委托(delegate)中实现 tableView:didClickTableColumn: 。该方法是 10.6 中的新方法。您需要获取[NSApp currentEvent],并可能将其传递给列单元格中的方法。
  3. 使用 TableView ,您可以绑定(bind)列;您不绑定(bind) View (无论如何,不​​提供内容;您确实为选择索引之类的内容绑定(bind) View )。对于 Collection View ,没有列(请参见#1),因此您始终绑定(bind) View 。
  4. 没有。

关于cocoa - NSTableView 和 NSCollectionView 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1655489/

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