如何将自定义 table 单元格视图添加到 NSTableView 中?

How to get custom table cell views into NSTableView?

我有一个主要使用标准 NSTextTableCellViewNSTableView,但我想要一些其他单元格在我的 table 中的一两行中包含另一个 UI 组件.问题是:我在哪里定义这些自定义单元格以便 Cocoa 找到它们?

我刚刚将自定义 NSTableCellView 放入我的 XIB(与 table 相同的 XIB)并给它一个标识符。但是然后使用这段代码显然找不到单元格...

func tableView(tableView:NSTableView, viewForTableColumn tableColumn:NSTableColumn?, row:Int) -> NSView?
{
    var view:NSTableCellView?;
    if (tableColumn?.identifier == "labelColumn")
    {
        view = tableView.makeViewWithIdentifier("labelCell", owner: nil) as? NSTableCellView;
        view!.textField?.stringValue = _formLabels[row];
    }
    else if (tableColumn?.identifier == "valueColumn")
    {
        if (row == 1)
        {
            view = tableView.makeViewWithIdentifier("customCell", owner: nil) as? NSTableCellView;
            println("\(view)"); // nil - Not found!
        }
        else
        {
            view = tableView.makeViewWithIdentifier("valueCell", owner: nil) as? NSTableCellView;
            view!.textField?.stringValue = _formValues[row];
        }
    }

    return view;
}

一切正常,但将找不到 ID 为 customCell 的单元格。我如何告诉 Cocoa 找到它?

您需要将新的单元格视图拖放到 table 列中,该列将包含那种单元格视图(在本例中其标识符为 "valueColumn")。