NSCollectionView具有不同的高度:如何在桌面上执行此操作?

时间:2010-11-18 19:01:25

标签: iphone objective-c cocoa ipad

感谢this post我现在知道如何在iPhone上创建一个具有不同行高的表格。 (使用 UITableView

如何在Mac上执行此操作?

我应该使用 NSTableView 吗? NSCollectionView 怎么样?我觉得NSTableView过于复杂 - 至少比UITableView复杂得多。我的意思是,我不需要所有的标题和东西。


这是一个例子。想象一下todo列表。有些待办事项可能很长,不适合一行。你会在iPhone,iPad和Mac上做什么?

2 个答案:

答案 0 :(得分:1)

NSTableView是UITableView的等效对象,虽然它有点复杂。如果您不需要标题,无论如何都不必显示它们。

答案 1 :(得分:1)

  

我应该使用NSTableView吗?

  

NSCollectionView怎么样?

这取决于你在做什么。如果您正在显示一维对象集合,尤其是以类似于Finder图标视图的形式,那么您需要NSCollectionView。如果您正在显示一个表,其中每列显示每行的一个方面(例如:rows = people; columns = name,title,department等),那么您需要NSTableView。

在NSCollectionView中,您可以将最小和最大项目大小设置为视图的属性,并且可以将每个项目的大小设置为项目的属性。

在NSTableView中,您可以通过作为表视图的委托并响应tableView:heightOfRow:来设置行的高度。如果要返回通常的行高,请在表视图中查询其rowHeight并返回;如果你想要返回一个不寻常的高度,那就这样做。

就个人而言,我发现NSTableView更易于使用。如果不是全部在IB中,你可以设置最多;关于你需要编写任何代码的唯一时间是自定义绘图,双击动作,或者是,可变行高。

对于你的待办事项列表示例,我会使用NSTableView,在“完成”属性的一列中有一个复选框按钮单元格。