我有一个NSView
子类,我想在NSTableView
中使用它。通常我当然会使用NSTableCellView
子类,但这个视图将在其他地方使用。
可能的?
答案 0 :(得分:2)
不要求用于基于视图的表视图的单元视图是NSTableCellView
或子类。使用其他视图对象的实例是完全可以的。例如,NSTextField
开箱即用。
您的表视图委托的-tableView:viewForTableColumn:row:
方法可以根据行配置视图。或者,您的视图可以实现objectValue
属性(使用-setObjectValue:
setter)。在这种情况下,表格视图会将数据源从其-tableView:objectValueForTableColumn:row:
方法返回的任何对象值转发到视图的objectValue
属性。
此外,如果您的视图类具有textField
或imageView
属性(如NSTableCellView
那样),那么在某些情况下将特别对待这些属性。例如,文本字段将是单元格的可访问性字符串。
基本上,NSTableCellView
的所有行为都是可推广的。并不是该类特别受到框架的特殊对待。它提供了适当的属性和方法,任何具有相同属性和方法的视图都可以复制其行为。
答案 1 :(得分:1)
将NSView
子类改为继承NSTableCellView
而不是NSView
,因为NSTableCellView
也会继承NSView
。