2

Apple のドキュメントカスタム ビューの作成によると、Interface Builder でカスタム ビュー プロキシを使用している場合は、このメソッドを呼び出す必要があります。

カスタム ビュー用の Interface Builder パレットを作成していない場合、Interface Builder 内でサブクラスのインスタンスを作成するために使用できる 2 つの手法があります。1 つ目は、Interface Builder コンテナー パレットでカスタム ビュー プロキシ アイテムを使用することです。このビューはカスタム ビューの代役であり、他のビューに対してビューの位置とサイズを変更できます。次に、インスペクターを使用して、ビューが表す NSView のサブクラスを指定します。nib ファイルがアプリケーションによってロードされると、カスタム ビュー プロキシは指定されたビュー サブクラスの新しいインスタンスを作成し、initWithFrame: メソッドを使用してそれを初期化し、必要に応じて自動サイズ変更フラグを渡します。その後、ビュー インスタンスは awakeFromNib メッセージを受け取ります。

残念ながら、私の場合は呼び出されていません。誰かがこの問題に対処しなければなりませんでしたか?

4

1 に答える 1

5

最近のバージョンの OS にデプロイする場合、最近のバージョンの Xcode には新しい動作があります。NIB の File インスペクタで、Runtime Behavior — Instantiation: Prefer coder がチェックされているかどうかを確認します。-initWithFrame:そうである場合は、カスタムビューを呼び出す必要がある場合はチェックを外してください。または、チェックしたままにして、NIB 読み込み機構が を呼び出すという事実を利用します-initWithCoder:。もちろん、NSCodingシリアル化する意味のあるカスタム内部状態をエンコードおよびデコードして、クラス プロパティがサポートしていることを確認する必要があります。

于 2015-06-03T02:14:48.427 に答える