双击调整点大小时,基于单元格的 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
当您使用默认的基于单元格的 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