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
}
}
在控制台它看起来不错,但它表明先前的值
默认情况下,日志栏的文本框= 1个日期= 2
答
我去它。我已经将类型更改为基于单元格的tableView函数。
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
return items[row]
}
我没有看到结果文本字段或任何与表视图之间的关系。这应该是基于视图的表格视图吗? –
'let result:NSTableCellView = tableView.make(withIdentifier:tableColumn!.identifier,owner:self)as! NSTableCellView' – osadchi
@ElTomato,结果=列中有新行。它包含文本字段,如果我设置了新的stringValue并打印出来,它会显示新的值,但在表中显示的是前一个。 – osadchi