2

サブクラス化しようとしてNSTokenFieldいて、初期化中にいくつかの ivar をセットアップする必要がありますが、オーバーライドする必要がある初期化子を操作できません。NSTokenFieldドキュメントには、指定された初期化子またはNSTextFieldトークンフィールドが継承するものについては何も書かれていません。

オーバーライドしよう-initWithFrame:とし-init:ましたが、どちらも呼び出されません。

4

1 に答える 1

2

initWithFrame:コードでテキスト フィールドを作成するinitWithCoder:場合、またはフィールドが XIB (Interface Builder) ファイルで作成される場合は、いずれかである必要があります。

これは、プロトコルに準拠した をNSTokenField継承しているためです。したがって、これは から継承する他のオブジェクトにも有効です。NSViewNCodingNSView

したがって、基本的に、サブクラスで両方をオーバーライドする必要があります。

- ( id )initWithFrame: ( NSRect )frame;
- ( id )initWithCoder: ( NSCoder * )decoder;
于 2012-09-01T14:53:28.067 に答える