我已经阅读到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)
答案 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)