双击调整点大小时,基于单元格的 NSTableView 调用函数?

Cell-based NSTableView called function when resizing spot is double clicked?

当您使用默认的基于单元格的 NSTableView 并双击列中的调整大小点时,该列将调整为您内容中最长文本的宽度。

我必须在基于视图的 NSTableView 中调用什么函数才能获得相同的效果?

编辑:我错过的功能是:

func tableView(tableView: NSTableView, sizeToFitWidthOfColumn column:Int) -> CGFloat

但是如何从所有字符串值中获取最大宽度?

您可以像这样获取列中所有行的最大宽度:

var width: CGFloat = 0
for i in 0...(tableView.numberOfRows-1) {
    let view = tableView.viewAtColumn(column, row: i, makeIfNecessary: true) as! NSTableCellView
    let size = view.textField!.attributedStringValue.size()
    width = max(width, size.width)
}
return width+20 //add an optional padding