2012-01-22 2 views
0

ココアのメインウィンドウを複数のスタイルに切り替える最も良い方法は何ですか? 私は、ミニプレーヤーの表示と通常のサイズのビューでiTunesのようなものを意味します。 私は別のnibファイルをレイアウトして、ユーザーにより小さなものかより大きなものかを選択させたいと思います。
[NSBundle loadNibNamed:@"BigWindow" owner:self];ココアのメインウィンドウの複数のスタイルを管理する

答えて

0

あなたはいつも窓を含むペン先をロードするためにNSWindowControllerを使用する必要があります。
は、私はにNSWindowControllerを必要とするか、それがこのようなアプリケーションの委任にニブをロードするためにokです行います。これは、NSWindowControllerがあなたのためにペン先のメモリ管理を処理するためです。それ以外はやや苦痛です。

ペン先からビューを読み込みたい場合は、代わりにNSViewControllerを使用してください。

+0

私は窓の間でいくつかの論理を共有しようとしています。両方の窓は同じことをする、彼らはちょうど異なるサイズと外観を持っています。各ウィンドウ(xib-file)にNSWindowControllerを使用してアプリケーションデリゲートを割り当てると、各ウインドウコントローラのアプリケーションデリゲートのインスタンスが得られます。私は何かを監督すると思う。これを行う簡単な方法がなければなりません(異なるレイアウトの全画面アプリで行われます)。 – stronzo

+0

あなたのアプリケーションコントローラは、ウィンドウコントローラをプログラムでインスタンス化し、それらのリファレンス(ivar)を保持する必要があります。 「アプリケーションデリゲートを割り当てる」とはどういう意味ですか? –

+0

私のアプリケーションコントローラと代理人は同じです。私はウィンドウコントローラをインスタンス化し、デリゲートのivarとして取得しました。 xibファイルには、アプリケーションデリゲートのIBActionsへの接続を行うためのアプリケーションデリゲートオブジェクトがあります。私がウィンドウからメソッドに侵入すると、アプリケーション代理人ivarsがアドレス0x0を持つことがわかります。 AppDidFinishLoadingメソッドとは別のアドレスを持っています。メインメニューからメソッドを呼び出すと、すべて正常です。だから私は何かを台無しにした。 IBActionsを呼び出すために各xibにアプリを委任させるのは間違っていますか? – stronzo

関連する問題