我使用以下代码来支持编辑单元格时的 NSTableCellView 高度增长。单元格包含自定义 NSTextField,我在其中覆盖了 intrinsicContentSize
:
override var intrinsicContentSize: NSSize {
if !isEditable {
return super.intrinsicContentSize
}
if let txt = self.window?.fieldEditor(false, for: self) as? NSTextView {
if let container = txt.textContainer {
if let layoutManager = container.layoutManager {
layoutManager.ensureLayout(for: container)
let size = layoutManager.usedRect(for: container).size
return NSMakeSize(NSView.noIntrinsicMetric, size.height)
}
}
}
return super.intrinsicContentSize
}
container.layoutManager
在 Big Sur 中总是返回 nil,它导致单元格在编辑时保持单行,而在 Catalina 中它不是 nil 并且单元格按预期增长。
如果有任何解决此问题的线索,我们将不胜感激。