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

时间:2015-03-25 09:01:03

标签: macos swift resize nstableview

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

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

编辑:我错过的功能是:

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

但是如何从我的所有stringValues获得最大宽度?

1 个答案:

答案 0 :(得分:1)

您可以获取列中所有行的最大宽度,如下所示:

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