【问题标题】:NSTextField in NSTableView doesn't update its valueNSTableView 中的 NSTextField 不会更新其值
【发布时间】:2016-12-17 13:12:58
【问题描述】:

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

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

【问题讨论】:

  • 我看不到结果文本字段或其他任何内容与表格视图之间的关系。这应该是基于视图的表格视图吗?
  • let result : NSTableCellView = tableView.make(withIdentifier: tableColumn!.identifier, owner: self) as! NSTableCellView
  • @ElTomato,结果 = 列中的新行。它包含文本字段,如果我设置新的 stringValue 并打印它,它会显示新值,但在表格中显示的是以前的。

标签: swift nstableview nstextfield


【解决方案1】:

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

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

    return items[row]

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多