NSTableView中的NSTextField不会更新其值

时间:2016-12-17 13:12:59

标签: swift 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

默认情况下,日志列的textfield = 1,日期= 2

1 个答案:

答案 0 :(得分:1)

我明白了。我已经将类型更改为基于单元格和tableView功能。

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

    return items[row]

}