编辑:链接回复没有回答这个问题。我仍然坚持这个......
我有一张桌子用于聊天消息。每条消息都是一个可变大小的框,包括一些文本。我希望表格中的行高可以根据消息框的大小动态变化。
如果我勾选自动'对于IB中的大小样式,它使所有行都具有很小的高度。看起来iOS有UITableViewAutomaticDimension可以自动缩放表格,但我找不到类似NSTableView的内容。
我知道可以创建以下功能:
$(document).ready(function() {
$('#Carousel').carousel({
interval: 5000
})
});
我可以使用它设置行高(上面将我的所有行设置为高度50),但我不知道如何使它取决于我的框中文本的大小。我怎样才能有效地做到这一点?
答案 0 :(得分:0)
这是一个解决方案
首先在代码中设置NSTextfield。这是一个虚拟的"字段,因为它从未实际绘制
var fakefield = NSTextField()
// Set the fontsize etc to be what you will use in the table
然后在heightOfRow函数
func tableView(tableView: NSTableView, heightOfRow row: Int) -> CGFloat {
let item = yourArray[row]
let fakefield.stringValue = item
// exactly how you get the text out of your data array depends on how you set it up
let yourHeight = fakefield.cell!.cellSizeForBounds(NSMakeRect(CGFloat(0.0), CGFloat(0.0), yourWidth, CGFloat(FLT_MAX))).height
// yourWidth = the width of your cell as CGFloat.
return yourHeight
}
可以找到更多详细信息和NSTextfield扩展程序Here。请注意,这个答案是在Swift 2.3中(还没有进入3)