【发布时间】:2014-08-07 15:11:56
【问题描述】:
我有一个NSView 子类,我想在NSTableView 中使用它。通常我当然会使用NSTableCellView 子类,但这个视图将在其他地方使用。
可能吗?
【问题讨论】:
-
这样做有什么意义?您的自定义视图可以是 NSTableCellView 的子视图??
标签: cocoa nstableview nsview
我有一个NSView 子类,我想在NSTableView 中使用它。通常我当然会使用NSTableCellView 子类,但这个视图将在其他地方使用。
可能吗?
【问题讨论】:
标签: cocoa nstableview nsview
用于基于视图的表格视图的单元格视图不要求是NSTableCellView 或子类。使用其他视图对象的实例是完全可以的。例如,NSTextField 开箱即用。
您的表视图委托的-tableView:viewForTableColumn:row: 方法可以根据行配置视图。或者,您的视图可以实现 objectValue 属性(使用 -setObjectValue: 设置器)。在这种情况下,表格视图会将您的数据源从其-tableView:objectValueForTableColumn:row: 方法返回的任何对象值转发到您视图的objectValue 属性。
此外,如果您的视图类具有 textField 或 imageView 属性(如 NSTableCellView 那样),那么在某些情况下将特别处理这些属性。例如,文本字段将是单元格的可访问性字符串。
基本上,NSTableCellView 的所有行为都是可推广的。框架并不是特别对待这个类。它提供了适当的属性和方法,任何具有相同属性和方法的视图都可以复制它的行为。
【讨论】:
将您的NSView 子类更改为从NSTableCellView 继承而不是NSView,因为NSTableCellView 也从NSView 继承。
【讨论】: