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

Swift 如何防止NSTableView调用委托函数?,swift,cocoa,notifications,delegates,tableview,Swift,Cocoa,Notifications,Delegates,Tableview,我有两个TableView,tableview1从NSArrayController中获取数据。tableview 2从tableview委托获取数据,如下所示: func tableView(_ tableview2: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? { if tableview2 == self.tableview2 { if let

我有两个TableView,tableview1从NSArrayController中获取数据。tableview 2从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
}

你到底想干什么?如果重新加载tableView1,它将调用viewForTableColumn。如果您不想这样做,请不要调用tableView1上的reloadData。如果您返回nil,那么您的tableview1在屏幕上是如何呈现的?@adev我没有调用tableview1上的重载数据。Tableview1通过NSArrayController绑定到阵列[NSObejct]。更新数组时,tableview1显示空行。tableview1中的行数对应于数组中的项目数。tableview1中也有正确的值(我可以在控制台中看到)。因此,tableview1使用正确的行数填充,甚至使用正确的值填充。但是tableview中的单元格在视觉上是空的。为什么重复问同样的问题?大约20小时前,您问了完全相同的问题。@ElTomato,因为有一条评论显然缺少一些代码。所以我重新提出了这个问题。这个解决方案的逻辑是不可否认的。而且,我永远也不会走到这一步。这真的帮了我很大的忙。谢谢