我有两个tableview,其中tableview1从NSArrayController获取其数据。 Tableview2从tableview委托获取数据,如下所示:

func tableView(_ tableview2: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {

        if tableview2 == self.tableview2 {

            if let cellView = tableView.make(withIdentifier: (tableColumn?.identifier)!, owner: self) as? NSTableCellView {
               let numbers = array[row]
               if tableColumn?.identifier == "cell" {
                   cellView.textField?.stringValue = "\(numbers.number)"

                   return cellView
               }
            }
        }
        return nil
}


如果我从tabeleview1重新加载数据,则上面的tableview函数将被调用并返回nil。因此,tableview1始终为空。我当然可以删除tableview1的代表插座,但是我需要tableViewSelectionDidChange()函数。

最佳答案

为每个表视图返回一个单元格视图。设置表视图2的控件的值。

func tableView(_ tableview2: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
    if let cellView = tableView.make(withIdentifier: (tableColumn?.identifier)!, owner: self) as? NSTableCellView {
        if tableview2 == self.tableview2 {
            if tableColumn?.identifier == "cell" {
                let numbers = array[row]
                cellView.textField?.stringValue = "\(numbers.number)"
            }
        return cellView
    }
    return nil
}

10-08 00:44