OS X のバージョンごとに異なる nib ファイルを作成することはできますか? たとえば、10.6 には自動レイアウト機能がありませんが、10.7 および 10.8 では優れた機能です。したがって、可能であれば、10.6 用に 1 つのニブを作成し、10.7 と 10.8 用に別のニブを作成できます。
2 に答える
もちろん。さまざまな NIB ファイルを作成するだけです。たとえば、これらのファイルの名前の末尾にバージョンを追加すると、実行時に、現在のシステムで実行されている OS X のバージョンが特定され、OS X のバージョンに適したライブラリがプログラムで読み込まれます。
ただし、アプリケーションの「メイン」NIB に対してそれを行うのはかなり困難です (可能です。私は以前にそれを行ったことがありますが、お勧めしません)。メインの NIB 10.6 互換性を確保し、メイン メニューとアプリケーション デリゲート (プログラムで作成するのではなく、NIB ファイルで作成する場合) のみを配置します。すべてのウィンドウ、ビュー、およびその他の UI 要素を個別の NIB ファイルに配置してから、アプリケーション デリゲート内で、次のようなコールバックでプログラムによって NIB ファイルをロードします。applicationDidFinishLaunching:
Apple の NIB File Documentationを見て、「Loading Nib Files Programmatically」を検索してください。そのために必要なメソッドへの役立つリンクと、単純な一般的なケースのサンプル コードがいくつかあります。
はい、ロード時に別の NIB ファイル名を指定するだけです。これを行うことができない場所の 1 つはアプリケーション NIB ですが、メニュー バーの横に UI 要素がないようにする必要があります。
これには、たとえば NIB ファイル名で作業するために、makeWindowControllers
またはwindowNibName
onのオーバーライドが含まれる場合があります。NSDocument
特定のクラスでこれを解決する方法の詳細については、ドキュメントを参照してください。間違いなく実行可能です。