可以在NSTableView中使用NSView子类吗?

时间:2014-08-07 15:11:57

标签: cocoa nstableview nsview

我有一个NSView子类,我想在NSTableView中使用它。通常我当然会使用NSTableCellView子类,但这个视图将在其他地方使用。

可能的?

2 个答案:

答案 0 :(得分:2)

不要求用于基于视图的表视图的单元视图是NSTableCellView或子类。使用其他视图对象的实例是完全可以的。例如,NSTextField开箱即用。

您的表视图委托的-tableView:viewForTableColumn:row:方法可以根据行配置视图。或者,您的视图可以实现objectValue属性(使用-setObjectValue: setter)。在这种情况下,表格视图会将数据源从其-tableView:objectValueForTableColumn:row:方法返回的任何对象值转发到视图的objectValue属性。

此外,如果您的视图类具有textFieldimageView属性(如NSTableCellView那样),那么在某些情况下将特别对待这些属性。例如,文本字段将是单元格的可访问性字符串。

基本上,NSTableCellView的所有行为都是可推广的。并不是该类特别受到框架的特殊对待。它提供了适当的属性和方法,任何具有相同属性和方法的视图都可以复制其行为。

答案 1 :(得分:1)

NSView子类改为继承NSTableCellView而不是NSView,因为NSTableCellView也会继承NSView