如果NSTableCellView是一个组小区,则它不会显示任何内容

时间:2015-03-20 20:35:48

标签: cocoa nstableview nstablecellview

我正在尝试使用组和常规单元格创建一个基于视图的简单NSTableView。除非我将此方法添加到NSTableViewDelegate/DataSource

,否则每个单元格都会绘制正确并显示我需要的所有内容
func tableView(tableView: NSTableView, isGroupRow row: Int) -> Bool {
    return (tableContent[row] as NSDictionary)["group"] != nil
}

它工作正常,但成为组细胞的细胞没有显示任何东西。我已尝试过不同的细胞类型,但仍然没有,只是半透明的灰色背景。即使我添加了类似

的内容
override func drawRect(dirtyRect: NSRect) {
    NSColor(calibratedRed: 0, green: 255, blue: 0, alpha: 1).setFill()
    NSRectFill(dirtyRect)
    super.drawRect(dirtyRect)

    // Drawing code here.
}

到我的小组细胞类我只会得到一个半透明的灰色背景。

1 个答案:

答案 0 :(得分:0)

我想也许你犯了和我今天一样的错误。

使用func tableView(tableView: NSTableView, isGroupRow row: Int) -> Bool时,func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView?不再为分组行提供tableColumn,这意味着tableColumn为零。因此,如果您的实施依赖于tableColumn.identifier,则它是不可靠的。

您应该将实施更改为依赖row分组行。