我正在尝试子类化NSTokenField
,我需要在初始化期间设置一些ivars,但我无法工作,我必须覆盖哪个初始化器。该文档没有说明令牌字段继承的NSTokenField
或NSTextField
的指定初始值。
我尝试覆盖-initWithFrame:
和-init:
,但他们也没有被调用。
答案 0 :(得分:2)
如果在代码中创建文本字段,则应为initWithFrame:
;如果在XIB(Interface Builder)文件中创建字段,则为initWithCoder:
。
这是因为NSTokenField
继承自NSView
,符合NCoding
协议。因此,这对从NSView
继承的其他对象也有效。
所以基本上,你应该在子类中覆盖它们:
- ( id )initWithFrame: ( NSRect )frame;
- ( id )initWithCoder: ( NSCoder * )decoder;