swift - 如何防止NSTableView调用委托(delegate)函数?

标签 swift cocoa notifications delegates tableview

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

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 的委托(delegate)导出,但我需要它用于 tableViewSelectionDidChange() 函数。

最佳答案

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

关于swift - 如何防止NSTableView调用委托(delegate)函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45221955/

相关文章:

ios - swift - iOS 9 : How do i present UIViewController with custom size in iOS 9?

arrays - 在 Swift 3 中对 [Dictionary<String, Any>] 进行排序

ios - 在 Swift 3 中使用 Stream 打开与 SMTP 服务器的套接字连接

objective-c - NSPanel 没有成为关键窗口

macos - MAC OS 在强制退出应用程序之前要求输入密码

android - NotificationListenerService 中的代码文本为 null

iphone - 如何使用 UIScrollView?

objective-c - 如何使多行(2 行)标签截断最后一行 (OS X)

ios - 如何在 iOS8 中保留通知中心的同时清除角标(Badge)编号

Android,从 "Recent apps"删除应用程序时取消通知