按照苹果文档,我试图NSTextView
通过它的两个构造函数方法设置一个简单的。
我将下面的代码放在viewDidAppear
内容视图的视图控制器的方法中。textView 是 的一个实例NSTextView
,frameRect 是内容视图的框架。
以下 Swift 代码有效(给了我一个可编辑的 textView 并在屏幕上显示文本):
textView = NSTextView(frame: frameRect!)
self.view.addSubview(textView)
textView.textStorage?.appendAttributedString(NSAttributedString(string: "Hello"))
以下内容不起作用(文本视图不可编辑且屏幕上未显示文本):
var textStorage = NSTextStorage()
var layoutManager = NSLayoutManager()
textStorage.addLayoutManager(layoutManager)
var textContainer = NSTextContainer(containerSize: frameRect!.size)
layoutManager.addTextContainer(textContainer)
textView = NSTextView(frame: frameRect!, textContainer: textContainer)
textView.editable = true
textView.selectable = true
self.view.addSubview(textView)
textView.textStorage?.appendAttributedString(NSAttributedString(string: "Hello more complex"))
我在第二个例子中做错了什么?我正在尝试遵循 Apple 的“Cocoa Text Architecture Guide”中给出的示例,他们在其中讨论了NSTextView
通过显式实例化其帮助对象网络来设置一个。