代码之家  ›  专栏  ›  技术社区  ›  jbrennan

InstableView和nsCollectionView之间的差异

  •  2
  • jbrennan  · 技术社区  · 15 年前

    我正在决定开发我的雪豹应用程序应该走哪条路。首先,我要先说明明显的区别:

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

    1. 据我所知, nscollection视图 项目是 NSView 必须具有相同的尺寸。而且,不像 非稳定视图 ,CollectionView项将复制到 nscollection视图 而不是根据需要由 dataSource (我对此不确定,如果我错了请纠正我)。

    2. 非稳定视图 使用 NSCell 如果您决定自定义行的显示。AS 恩塞尔 不是一个 NSResponder ,如何处理事件(如果我想给手机添加某种附件,比如iTunes中的箭头如何工作(尽管iTunes是碳纤维的)。我见过一些 恩塞尔 在ib中的亚类,似乎等同于 NSControl 兄弟们,但如果我想要 MySweetView 对象中的 NScell公司 ?).

    3. 这两种方法在绑定方面似乎都是一样的,对吗?

    4. 最后, nscollection视图 似乎可以很好地播放其元素的动画(例如用于重新排列项目或过滤项目)。可以 非稳定视图 用它的行来做这个吗?

    还有什么需要考虑的吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Peter Hosey    15 年前
    1. 这里的区别在于,在表视图中,每一行都是一个项目,列显示该项目的不同方面(属性)。在集合视图中,每个行-列交叉点都是一个项。
    2. 我没做过,但试着执行 tableView:didClickTableColumn: 在表视图委托中。这种方法在10.6中是新的。你需要 [NSApp currentEvent] ,并可能将其传递给列单元格中的方法。
    3. 对于表视图,您绑定列;您不绑定视图(无论如何,不提供内容;您确实为选择索引等内容绑定视图)。对于集合视图,没有列(请参见1),因此始终绑定视图。
    4. 不。
        2
  •  2
  •   NSResponder    15 年前

    fwiw,instableview是AppKit中非常古老的部分,它有点粗糙。

    如果你是这个平台的新手,我建议你先看看nscollectionview。