如何防止NSTableView调用委托函数?

时间:2017-07-20 17:54:49

标签: swift cocoa notifications delegates tableview

我有两个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()函数。

1 个答案:

答案 0 :(得分:0)

返回每个表视图的单元格视图。设置表视图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
}