当表为空时,如何确定NSTableView中给定列的NSTableCellView?

时间:2019-10-14 00:23:37

标签: macos cocoa nstableview nstablecellview

我有一个基于视图的NSTableView实例,其中包含一列。我需要在填充表之前确定该列的NSTableCellView实例。我需要一个视图来确定它的高度和它所包含的文本字段所使用的字体。

我尝试过

func view(atColumn: Int, row: Int, makeIfNecessary: Bool) -> NSView?

但是它崩溃了,因为空表不包含任何行。

我尝试使用该单元格的标识符并称为

func makeView(withIdentifier: NSUserInterfaceItemIdentifier, owner: Any?) -> NSView?

,但是在xib中提供标识符后,该表未显示任何数据。我认为这可能与将表绑定到数组控制器有关。

因为,当在IB中构造表时,有人在NSTableColumns中创建了NSTableCellView的实例,我本以为会有一种查询列以获取视图的方法,但事实并非如此。

任何指导将不胜感激。

1 个答案:

答案 0 :(得分:1)

来自makeView(withIdentifier:owner:)

  

请注意,单元格视图的标识符必须与其表列的标识符相同,绑定才能起作用。如果您使用绑定,建议您使用Interface Builder中的“自动标识符”设置。

makeView(withIdentifier:owner:)中使用表列的标识符,或者在表列和单元格视图中使用相同的标识符。

相关问题