如何将自定义表格单元格视图导入NSTableView?

时间:2015-06-14 14:15:50

标签: macos swift cocoa nstableview nstableviewcell

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

我刚刚将自定义NSTableCellView放入我的XIB(表中的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找到它?

1 个答案:

答案 0 :(得分:1)

您需要删除包含该类单元格视图的表格列中的新单元格视图(标识符为" valueColumn",在这种情况下)。