MacOS:tableView:viewForTableColumn:row:在一定数量的行后停止调用

时间:2019-07-09 09:19:52

标签: swift macos cocoa nstableview

我的xib文件中的NSTableView中有一个NSWindow。 Interface Builder中的xib可以是视图here。我正在使用基于视图的表视图。

我的问题是tableView中单元格的textField只填充到表格的高度。从那时起,tableView:viewForTableColumn:row:不再被调用,剩下的行数正确,但大多数行没有文本。图here

我实现的dataSourcedelegate方法如下:

    // MARK: - Table View Data Source
    func numberOfRows(in tableView: NSTableView) -> Int {
        return builds.count
    }

    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
        guard let cellView = tableView.makeView(withIdentifier: tableColumn!.identifier, owner: nil) as? NSTableCellView else {
            return nil
        }
        let formatter = DateFormatter()
        formatter.dateFormat = "MMM d, yyyy"
        cellView.textField?.stringValue = formatter.string(from: builds[row].buildDate)
        return cellView
    }

我已经坚持了大约一天,并且没有取得太大进展。我将不胜感激

1 个答案:

答案 0 :(得分:0)

甜耶稣,我知道了。我的红色NSWindowController马上就被取消了初始化,因此在tableView的可见部分显示了单元格,然后什么也没有显示!保留对控制器的引用即可解决此问题。