为什么表格单元格的textFiled永远不会改变?

时间:2017-09-17 18:14:36

标签: swift macos

my xib storyboard as follow : enter image description here

the result is this

=============================================== ===================

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))

}}

=============================================== ===================

这有什么不对?是配置错误吗?它一直显示"表格查看单元格"

2 个答案:

答案 0 :(得分:0)

最后,我发现了问题! 我错过了实现方法“tableView(_ tableView:NSTableView,viewFor tableColumn:NSTableColumn?,row:Int) - > NSView?”

答案 1 :(得分:0)

tableView(_:viewFor:row :)是一个委托方法,而不是数据源方法。除非您将tableView指定为符合NSTableViewDelegate协议,否则不会调用该方法。这让我感到困惑,因为我认为这是一种来源方法。