2 NSTableViews 1 ViewController。第二个tableview中的单元格不会将数据附加到行

问题描述 投票:0回答:1

即使填充了inActive Computers数组,第二个表视图单元格也会填充“Table View Cell”。

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中的内容刚刚被跳过。我觉得这种方法无法实现我想要实现的目标!?

swift nstableview
1个回答
0
投票

感谢提示

我需要为第二个表的嵌套textField设置Referencing Outlets。我把这个放在我的第一张桌子上,但在第二张桌子上忘了它。我现在能够将每个数组解析为每个表。 (见下图)

Table Cell View: Referencing Outlets

© www.soinside.com 2019 - 2024. All rights reserved.