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
我不確定警告可能是什麼,但它肯定是支持和正確的方法。例如,如果從對象庫中拖動源列表,則會在列中獲得包含兩個單元視圖的大綱視圖(一個用於組行,一個用於普通行)。 –