我有一个子类
NSTextView
,在这个子类的初始值设定项中,我想调用:
super.init(frame: NSMakeRect(...))
这是我在初始化
NST文本视图
以编程方式。我简单地写道:
let textView = NSTextView(frame: NSMakeRect(0,0,10,10))
然而,当我在子类中执行此操作时(
super.init(frame: (...))
),编译器抛出错误。它不会让我使用
init(frame:)
因为
初始化(帧:)
是的方便初始值设定项
NST文本视图
,我必须调用“超类的指定初始值设定项”
在检查文档后,我发现
NST文本视图
是
init(frame: textContainer:)
但我不想处理
NSTextContainers
为什么我必须从一个对象的子类中调用一个指定的初始值设定项,但如果对象没有被子类化,我可以调用一个方便的初始值设置项?每当我通常初始化
NST文本视图
我不需要提供
NSTextContainer
,但当我初始化
NST文本视图
作为子类的超类,我是这样做的。这是为什么?
此外,是否有任何方法可以初始化
NST文本视图
使用某种“默认”文本容器?不管指定的初始值设定项如何,我只想在这里创建一个
NST文本视图
不用担心
NSText容器
.