NSTableView中的NSTextField不更新它的值

问题描述:

我有一张表,当我创建一些带有更改文本的行时,它不会显示在应用程序中。NSTableView中的NSTextField不更新它的值

var items : [String] = [] 

override func viewDidLoad() { 

    super.viewDidLoad() 
    items.append("Apples") 
    items.append("Oranges") 

    tableView.reloadData() 

} 

func numberOfRows(in tableView: NSTableView) -> Int { 

    return items.count 

} 

func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any?{ 

    let result : NSTableCellView = tableView.make(withIdentifier: tableColumn!.identifier, owner: self) as! NSTableCellView 

    print(tableColumn?.title) 
    result.textField?.stringValue = items[row] 
    print(result.textField?.cell?.title) 

    return result 

} 

}

在控制台它看起来不错,但它表明先前的值

enter image description here

enter image description here

默认情况下,日志栏的文本框= 1个日期= 2

+0

我没有看到结果文本字段或任何与表视图之间的关系。这应该是基于视图的表格视图吗? –

+0

'let result:NSTableCellView = tableView.make(withIdentifier:tableColumn!.identifier,owner:self)as! NSTableCellView' – osadchi

+0

@ElTomato,结果=列中有新行。它包含文本字段,如果我设置了新的stringValue并打印出来,它会显示新的值,但在表中显示的是前一个。 – osadchi

我去它。我已经将类型更改为基于单元格的tableView函数。

func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? { 

    return items[row] 

}