【发布时间】:2010-04-07 14:50:19
【问题描述】:
我正在学习 Cocoa,并尝试为 Mac 创建一个显示简单书单的应用程序。每本书都是一个带有封面图片、标题和作者的 NSView。我想将此列表显示为一个 NSTableView,每个单元格中有一个列和一个书本视图。但是我还不知道如何在界面生成器中的表格单元格内或以编程方式显示自定义视图。任何提示将不胜感激:)
Inso.
【问题讨论】:
我正在学习 Cocoa,并尝试为 Mac 创建一个显示简单书单的应用程序。每本书都是一个带有封面图片、标题和作者的 NSView。我想将此列表显示为一个 NSTableView,每个单元格中有一个列和一个书本视图。但是我还不知道如何在界面生成器中的表格单元格内或以编程方式显示自定义视图。任何提示将不胜感激:)
Inso.
【问题讨论】:
如果您所有的“图书浏览量”大小都相同,为什么不使用NSCollectionView / NSCollectionViewItem?这是一个更清洁的解决方案(只要它们的大小都相同)。
【讨论】:
假设集合视图不是更好的解决方案,您需要做的是编写自定义单元格。该列恰好拥有一个这样的单元格,表格视图将使用该单元格为每一行绘制列的值。
(如果你来自 iPhone,是的,这与 UITableView 完全不同。每个 NSTableColumn 都有一个单元格,它用于每一行。)
如果你在其他地方使用你的 NSView 类,那么你可以把它变成 NSControl 的子类,并让它使用同一个单元类的另一个实例。与大多数控件一样,所有实际工作都将由单元格完成,这使您能够在多个控件(您的单个控件和表格视图)中重用该行为。
请参阅Control and Cell Programming Topics 了解更多信息。
【讨论】:
Apple 在 Lion 中添加了 view-based table views,因此您现在应该可以使用 NSTableView 本地执行此操作了。
(您仍然不能将 NSView 放在 NSCell 中——这没有意义。但是您可以在表格视图中使用视图而不是单元格。)
【讨论】: