大苏尔中的 NSLayoutManager nil

问题描述

我使用以下代码支持编辑单元格时的 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 并且单元格按预期增长。

如果有任何解决此问题的线索,我们将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...