0

awakeFromNib は 1 回だけ呼び出すように言われたので、WindowController に対して 2 回呼び出されたことに非常に驚きました。IB を使用して MainMenu.xib に WindowController を作成しますが、読み込むウィンドウの xib ファイルを指定するために、init メソッドを追加しました。

コードをデバッグすると、このコール スタックによってトリガーされた awakeFromNib への最初の呼び出しが見つかりました。したがって、基本的に [MyWindowController init] が最初の呼び出しをトリガーしました。それから、私が推測する 2 番目の呼び出しは、MainMenu.xib のロードが原因でした。あれは正しいですか ?

誰かがそれに光を当てることができますか?

ところで、スタックオーバーフローに関する私のものと同様の他の質問をいくつか読みましたが、ファイルオーウェンの問題が原因である可能性があるとの回答がありました。そのため、特にウィンドウ xib ファイルのファイル所有者を NSApplication に変更します。しかし、MyWindowController に対してはまだ awakeFromNib が 2 回呼び出されていました。

ここに画像の説明を入力

4

1 に答える 1

1

あなたの質問から、IB で MyWindowController をインスタンス化し、MyWindowControllers init で initWithWindowNibName:? その場合、当然 2 つの awakeFromNib 呼び出しを受け取ります。1 つは init メソッドで指定された NIB をロードするとき、もう 1 つは MainMenu.xib をロードするときです。

于 2011-09-21T09:28:30.423 に答える