我正在尝试使用不同的行构建NSTableView。我添加了两个表格单元格视图并设置了标识符,委托和数据源链接到委托。
当标识符设置为 OTFType 且 OTFTag 时,永远不会调用委托方法tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn?, row: Int) -> AnyObject?
。但是numberOfRowsInTableView(tableView: NSTableView) -> Int
设置的行数是OK
当我删除标识符时,调用方法tableView(tableView: NSTableView, objectValueForTableColumn...
但会抛出错误(当然)。
标识符设置:
rows: 96
程序继续,TableView具有适当的行数但它们是空的。
未设置标识符:
rows: 96
Hello, is this method called?
fatal error: unexpectedly found nil while unwrapping an Optional value
程序停止。
以下是我的委托方法:
func numberOfRowsInTableView(tableView: NSTableView) -> Int {
print ("rows:", tableArrayController.arrangedObjects.count)
return tableArrayController.arrangedObjects.count
}
func tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn?, row: Int) -> AnyObject? {
print("Hello, is this method called?")
let tableContent = tableArrayController.arrangedObjects as! [AnyObject]
let item = tableContent[row]
if item.className == OpenTypeFeature.className() {
print("className = \(item.className)")
let button:NSButton = tableView.makeViewWithIdentifier("OTFTag", owner: self) as! NSButton
button.title = (item as! OpenTypeFeature).tag
button.integerValue = 1 //TO DO later
return button
} else if item.className == OpenTypeFeaturesType.className() {
print("className = \(item.className)")
let textField:NSTextField = tableView.makeViewWithIdentifier("OTFType", owner: self) as! NSTextField
textField.stringValue = (item as! OpenTypeFeaturesType).name
return textField
}
return nil
}
任何提示?