我正在尝试对NSTokenField
进行子类化,在初始化过程中我需要设置一些ivar,但我无法处理我必须覆盖的初始化程序。该文档没有说明令牌字段从中继承的NSTokenField
或NSTextField
的指定初始化程序。
我尝试覆盖-initWithFrame:
和-init:
,但它们也没有被调用。
如果在代码中创建文本字段,则应为initWithFrame:
;如果在XIB(接口生成器)文件中创建字段,则为initWithCoder:
。
这是因为NSTokenField
继承自符合NCoding
协议的NSView
。因此,这对于从NSView
继承的其他对象也是有效的。
因此,基本上,您应该在一个子类中覆盖这两个:
- ( id )initWithFrame: ( NSRect )frame;
- ( id )initWithCoder: ( NSCoder * )decoder;