Cocoa:如何使表视图在每个单元格中绘制自定义视图

时间:2010-04-07 14:50:19

标签: cocoa macos

我正在学习Cocoa并尝试为Mac创建一个显示简单书单的应用程序。每本书都是NSView及其封面图片,标题和作者。我想将此列表显示为NSTableView,每个单元格中都有一列和一个书籍视图。但是,我还不知道如何在界面生成器中或以编程方式在表格单元格内显示自定义视图。任何提示将非常感激:))

因索。

3 个答案:

答案 0 :(得分:3)

如果您的所有“图书浏览量”都相同,为什么不使用NSCollectionView / NSCollectionViewItem?这是一个更清洁的解决方案(前提是它们的大小都相同)。

答案 1 :(得分:2)

假设集合视图不是更好的解决方案,您需要做的是编写自定义单元格。该列只拥有一个这样的单元格,表格视图将用于绘制每行的列值。

(如果你来自iPhone,是的,这与UITableView完全不同。每个NSTableColumn只有一个单元格,它用于每一行。)

如果你在其他地方使用你的NSView类,那么你可以把它变成NSControl的子类并让它使用同一个单元类的另一个实例。像大多数控件一样,所有实际工作都将由单元格完成,这使您可以在多个控件(单个控件和表视图)中重用该行为。

有关详细信息,请参阅Control and Cell Programming Topics

答案 2 :(得分:0)

Apple在Lion中添加了view-based table views,因此您现在可以使用NSTableView本地执行此操作。

(您仍然无法在NSCell中放置NSView - 这是没有意义的。但您可以在表视图中使用而不是单元格。)