=============================================== ===================
class ViewController: NSViewController,NSTableViewDelegate, NSTableViewDataSource{
@IBOutlet weak var sidebarView: NSTableView!
func numberOfRows(in tableView: NSTableView) -> Int {
return 9
}
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
let tableCellView = tableView.make(withIdentifier: tableColumn!.identifier, owner: self) as? NSTableCellView
let str:String = (tableColumn?.identifier)!
if str == "SIDEBAR_ITEM" {
tableCellView!.textField?.stringValue = "test"
print(tableCellView!.textField?.stringValue)
}
return tableCellView
}
func tableView(_ tableView: NSTableView, rowViewForRow row: Int) -> NSTableRowView? {
//print("rowViewForRow")
return NSTableRowView(frame: NSRect(x: 0, y: 0, width: 100, height: 100))
}}
=============================================== ===================
这有什么不对?是配置错误吗?它一直显示"表格查看单元格"
答案 0 :(得分:0)
最后,我发现了问题! 我错过了实现方法“tableView(_ tableView:NSTableView,viewFor tableColumn:NSTableColumn?,row:Int) - > NSView?”
答案 1 :(得分:0)
tableView(_:viewFor:row :)是一个委托方法,而不是数据源方法。除非您将tableView指定为符合NSTableViewDelegate协议,否则不会调用该方法。这让我感到困惑,因为我认为这是一种来源方法。