【问题标题】:What makes the difference of cell-based NSTableView and view-based NSTableView?基于单元格的 NSTableView 和基于视图的 NSTableView 有什么区别?
【发布时间】:2013-03-15 11:03:56
【问题描述】:

如果我的理解没有错的话,基于单元格的 NSTableView 和基于视图的 NSTableView 是同一类型的实例。 那么,cpu如何区分cell-based和view-based呢?

据我所知,基于单元格和基于视图的委托方法是不同的。 基于单元格的 NSTableView 需要tableView:objectValueForTableColumn:row:,基于视图的 NSTableView 需要tableView:viewForTableColumn:row:。 有什么东西决定了 NSTableView 的实例是基于单元格还是基于视图?

【问题讨论】:

    标签: objective-c nstableview


    【解决方案1】:

    除了以下描述,我建议您通过 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/TableView/Introduction/Introduction.html

    在 OS X 10.6 及更早版本中,表格视图中的每个单独的单元格都必须是 NSCell 的子类。这种方法在设计复杂的自定义单元格时造成了限制,通常需要开发人员编写自己的 NSCell 子类。此外,提供动画(例如进度视图)非常困难。

    在 OS X 10.7 版中,表格视图已经过重新设计,现在支持将视图用作单个单元格。这些被称为基于视图的表视图。基于视图的表格视图允许您在 Xcode 4.0 的 Interface Builder 部分中设计自定义单元格。它允许简单的设计时布局以及使更改动画和自定义绘图变得容易。与基于单元格的表视图一样,基于视图的表视图支持选择、列拖动和其他用户期望的表视图行为。唯一的区别是开发人员在设计和实施方面获得了更大的灵活性。

    在 Interface Builder 中创建基于视图和基于单元格的表视图以及添加列使用相同的技术。在提供单个单元格、填充表格视图的内容和自定义表格视图外观时,应用程序代码中会出现差异。同样,两种实现之间的 Cocoa 绑定技术完全不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 2013-07-25
      • 1970-01-01
      相关资源
      最近更新 更多