0
我有一个NSTableView
,主要使用标准NSTextTableCellView
s,但我想要一些其他单元格包含我的表中的一个或两个行中的另一个UI组件。问题是:我在哪里定义这些自定义单元格,以便Cocoa找到它们?如何将自定义表格单元格视图导入NSTableView?
我刚刚将一个自定义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
细胞不会被发现。我如何告诉可可找到它?
你把它放在哪里?你应该把它放在可能包含这种单元格视图的表格列中(在这种情况下,它的标识符是“valueColumn”)。 –
有意义,毕竟tableView.makeViewWithIdentifier()是表视图的一种方法。起初,我在XIB中松散地放置了它。将它放在表格视图列中确实有效。虽然我记得Xcode在之前在第一个表列中试过这个不支持的警告时抱怨过。 – BadmintonCat
我不确定警告可能是什么,但它肯定是支持和正确的方法。例如,如果从对象库中拖动源列表,则会在列中获得包含两个单元视图的大纲视图(一个用于组行,一个用于普通行)。 –