1

我正在尝试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.
}

在我的小组单元班中,我只会得到一个半透明的灰色背景。

4

1 回答 1

1

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

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

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

于 2017-03-08T11:33:27.590 回答