2个NSTableViews 1个ViewController。第二个表格视图中的单元格未将数据追加到行

时间:2019-04-17 14:04:58

标签: swift nstableview

第二个表格视图单元格填充有“表格视图单元格” 即使已填充inActiveComputers数组。

tableView1已成功用activeComputers数组填充。这两个表的数据源,委托和引用出口都通过IB设置为MainView。

我对下一步的尝试感到茫然!


  @IBOutlet weak var tableView1: NSTableView!
    @IBOutlet weak var tableView2: NSTableView!

 func numberOfRows(in tableView: NSTableView) -> Int {
        if(tableView == self.tableView1){
            return activeComputers.count
        }
        else if(tableView == self.tableView2){
            return inActiveComputers.count
        }
        return 0
    }
    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
        var result = NSTableCellView()
        if(tableView == self.tableView1)
        {

            result = tableView.makeView(withIdentifier: (tableColumn?.identifier)!, owner: self) as! NSTableCellView
            result.textField?.stringValue = activeComputers[row][(tableColumn?.identifier.rawValue)!]!
            return result
        }

     else if(tableView == self.tableView2)
        {

            result = tableView.makeView(withIdentifier: (tableColumn?.identifier)!, owner: self) as! NSTableCellView
            result.textField?.stringValue = inActiveComputers[row][(tableColumn?.identifier.rawValue)!]!
            return result
        }
        return nil
    }

我也尝试过...

 func numberOfRows(in tableView: NSTableView) -> Int {
       if tableView == tableView1 {
        return activeComputers.count
       } else { return deadComputers.count}

    }
    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
        var result = NSTableCellView()
        result = tableView.makeView(withIdentifier: (tableColumn?.identifier)!, owner: self) as! NSTableCellView
        if tableView == tableView1 {
            result.textField?.stringValue = activeComputers[row][(tableColumn?.identifier.rawValue)!]!

        } else {

            result.textField?.stringValue = deadComputers[row][(tableColumn?.identifier.rawValue)!]!

        }
        return result
    }

我在} else {上设置了一个断点 tableView函数中else中的内容只是被跳过。我觉得用这种方法无法实现我想要实现的目标!?

1 个答案:

答案 0 :(得分:0)

感谢小提示

我需要为第二个表的嵌套textField设置引用出口。我在第一张桌子上放了这张桌子,但是在第二张桌子上却忘记了。 现在,我可以将每个数组解析为每个表。 (请参见下图)

Table Cell View: Referencing Outlets