将字典放在Swift 4中的NSTableView中

时间:2018-02-15 15:22:33

标签: swift nsdictionary nstableview

我想放字典:

dict = [["itemId": 21, "itemPrice": 34], ["itemId": 32, "itemPrice": 52]]

我还在NSTableView

中关联NSViewController
class MainViewController: NSViewController {

      @IBOutlet weak var tableView: NSTableView!
      .... 
}

列标识符与我的字典dict的键相同。

如何把我的词典放在桌子上?以及如何更改表格中的值?

2 个答案:

答案 0 :(得分:1)

Cocoa Bindings解决方案:

  1. 在视图控制器中声明一个数据源数组

    @objc dynamic var items = [["itemId": 21, "itemPrice": 34], ["itemId": 32, "itemPrice": 52]]
    
  2. 在Interface Builder中

    • 将表格视图的Content绑定到View Controller > items
    • 将第一列Value的{​​{1}}绑定到Table View Cell
    • 将第二列Table Cell View > objectValue.itemId的{​​{1}}绑定到Value

    请注意差异Table View CellTable Cell View > objectValue.itemPrice。这很重要。

  3. 这就是全部。除单行外无需代码。

答案 1 :(得分:0)

表视图的模型是一个对象数组,每个对象代表一行。

分段表视图的模型是一组对象数组。 (外部数组表示部分,内部数组表示行)。

表的数据源的第一项工作是将其输入重新排列为数组。字典提供allKeys和allValues方法,分别回答键和值的数组。这通常是一个人开始的地方。