How to resize NSTextView according to its content?

前端 未结 4 2210
南方客
南方客 2020-12-14 09:11

I am trying to set an attributed string within NSTextView. I want to increase its height based on its content, initially it is set to some default value.

So I tried

4条回答
  •  被撕碎了的回忆
    2020-12-14 09:28

    Based on @Peter Hosey's answer, here is an extension to NSTextView in Swift 4.2:

    extension NSTextView {
    
        var contentSize: CGSize {
            get {
                guard let layoutManager = layoutManager, let textContainer = textContainer else {
                    print("textView no layoutManager or textContainer")
                    return .zero
                }
    
                layoutManager.ensureLayout(for: textContainer)
                return layoutManager.usedRect(for: textContainer).size
            }
        }
    }
    

提交回复
热议问题