我正在尝试决定开发Snow Leopard应用程序的路径。首先,我应该提出明显的不同之处:
NSTableView
可以有多列数据,用于表示同一“数据”元素(一行)的不同部分,其中NSCollectionView
也可以显示数据网格,但每行+列组合是它自己的元素。就我的目的而言,假设我正在处理一个专栏。
据我所知,NSCollectionView
项目NSView
,所有项目必须具有相同的维度。此外,与NSTableView
不同,collectionview项目被复制到NSCollectionView
,而不是dataSource
根据需要提供(我不确定,如果我错了请纠正我)
NSTableView
会使用NSCell
。由于NSCell
不是NSResponder
,如何处理事件(如果我想在单元格中添加某种附件,就像iTunes中的Arrows如何工作(尽管iTunes是Carbon)。我在IB中看到了一些NSCell
子类,它们似乎是他们NSControl
兄弟的等价物,但是如果我想在MySweetView
中拥有NSCell
个对象怎么办?
对于Bindings而言,两者似乎都是一样的,对吗?
最后,NSCollectionView
似乎与其元素的动画很好地配合(例如,用于重新排列项目或过滤它们)。 NSTableView
可以对其行执行此操作吗?
我还应该考虑其他什么?
答案 0 :(得分:3)
tableView:didClickTableColumn:
。这种方法在10.6中是新的。您需要获取[NSApp currentEvent]
,并可能将其传递给列单元格中的方法。答案 1 :(得分:2)
FWIW,NSTableView是AppKit的一个非常古老的部分,它有点苛刻。
如果您是平台的新用户,我建议您首先了解NSCollectionView。