14

サンプルアプリを作成すると(つまり、タブバーアプリケーションなどで開始)、MainWindow.xibファイルに、ファイルの所有者、ファーストレスポンダー、アプリデリゲート、ウィンドウ、タブバーコントローラーの5つの項目が表示されます。

別の.xibファイルを作成し、そのデリゲートを作成し、そのファイルの所有者を作成したばかりの新しいデリゲートに設定すると、そのファイルの...オブジェクト(?)のリストに「NewDelegateFile」が表示されません。 xib。

これは私には意味がありません、そして私がiPhoneの開発にそれほど速く追いついていない理由の大きな部分だと思います。

誰かが私にその小さな特異性を説明するために時間を割いて気にしていますか?

4

1 に答える 1

24

ファイルの所有者は、xib ファイルの実際のオブジェクトではありません。プロキシ オブジェクトです。これは、ロード時に xib の所有者になるオブジェクトを表します。First Responder と App Delegate もプロキシです。ファーストレスポンダは、現在レスポンダ チェーンの一番上にあるオブジェクトです。アプリケーションの状態が変化すると、別のオブジェクトがファーストレスポンダになることがあります。このプロキシ オブジェクトを使用して、File->Save メニューなどを、その処理を担当するオブジェクトに接続します。

App Delegate は実際のオブジェクトです。xib が読み込まれると、すぐに有効になります。Interface Builder でわかるように、ファイルの所有者のデリゲート アウトレットに接続されています。アプリケーションは MainWindow.xib をロードします。これがファイルの所有者です。

他の xib ファイルは通常、デリゲート オブジェクトを介して読み込まれます。そのデリゲート オブジェクトは、ファイルの所有者です。ただし、デリゲート自体はコードからインスタンス化されます。xib からロードされません。そのため、Interface Builder には表示されません。

xib ファイルには、実際のシリアル化されたオブジェクトが含まれています。ファイルの所有者とファーストレスポンダは例外です。それらは、他の既存のオブジェクトを表します。

ファイルの所有者 (多くの場合、非 MainWindow.xib ファイルの UIViewDelgate) はニワトリです。シブは卵です。卵の中に鶏肉自体は入っていません。

少し長い。それが役に立てば幸い。

于 2009-04-17T21:06:06.597 に答える