UITextView为什么不显示文本?

时间:2019-06-28 22:55:09

标签: swift

我已经阅读到TextView包含三个组件-布局管理器,TextView和Text Storage。我有一个非常简单的用例,无需存储和自定义布局管理器就可以解决。

为什么以下内容仅显示图例框架所描述的空白方块?

 let legendContainer = NSTextContainer(size: CGSize(width: 100, height: 100))
 let legend = UITextView(frame: CGRect(x: 20, y: 150, width: 200, height: 200), textContainer: legendContainer)
    legend.textColor = UIColor.lightGray
    legend.backgroundColor = UIColor.darkGray
    legend.font = UIFont.boldSystemFont(ofSize: 14.0)
    legend.text = "My text"
    addSubview(legend)

enter image description here

1 个答案:

答案 0 :(得分:1)

这是因为您的文本容器缺少文本工具包堆栈的其余部分。 可能只需要文本容器,但是文本容器仍然需要布局管理器和文本存储。

let lm = NSLayoutManager()
let ts = NSTextStorage()
ts.addLayoutManager(lm)
let tc = NSTextContainer(size: someSize)
lm.addTextContainer(tc)
let tv = UITextView(frame:someFrame, textContainer:tc)