2012-04-15 13 views
2

私は、Mac用のMVCを使用しようとするテストアプリケーションを作成しています。initWithNibNameと同等のもの:OSX?

私は5つのnibファイルを作成しました。それぞれ、異なるウィンドウと、各ペン先のクラスファイルを作成しました。

MainMenu.xibのボタンを押すと、新しいビューが開きます。

私はinitWithNibName:をiOS用に使用していますが、Macでの動作を確認することはできません。それとも私はこれについて間違った方法をとっていますか?もしそうなら、Xcodeを使ってMacアプリケーションでさまざまなビューとクラスをどのように管理しますか?

+1

「新しいビューを開く」と言ったら、「新しいウィンドウを開く」という意味ですか? – Vervious

+0

現在のnibを閉じて別のものを開いて前後に切り替えるのと同じように... – Cristian

+2

現在のウィンドウを閉じて新しいウィンドウを開くか、コンテンツビューを切り替えますか?ペン先はウィンドウやビューのいずれかを表すことができるので、あなたが何を意味するのかは分かりません。 – Vervious

答えて

10

「私は5つのnibファイルを作成しましたが、それぞれ異なるウィンドウと各nibのクラスファイルを作成しました。私はあなたが5つの異なったウィンドウ(ビューではない)を持っていると仮定して、ボタンを押すときにそれを開きたいと思います。

各ウィンドウのnibファイルは、NSWindowController(MVCのC)によって制御されます。 nibファイルを実際にロードするには(プログラムで)、NSWindowControllerを割り当てます。 OS XのNSWindowControllerはiPhoneのUIViewControllerに匹敵します。

NSWindowController *controller = [[NSWindowController alloc] initWithWindowNibName:@"nib1"] 

NSWindowControllerが管理するウィンドウを開いたり閉じたりできます。

[controller showWindow:nil]

は、窓の鍵窓にするウインドウ

[controller.window makeKeyAndOrderFront:self]を表示します。

これは、同じウィンドウを維持するが、そのウィンドウのコンテンツビューを切り替えることです。その場合は、ウィンドウを持たない(ウィンドウが冗長になるため)ビューを含むファイル(ウィンドウをロードするのにNSViewControllerを使用する)が必要です。

しかし、あなたはcontentViewを置き換えるために、窓に固執しても:

[currentWindow setContentView:[newWindowController.window contentView]]; 

enter image description here

enter image description here

enter image description here

enter image description here

Windows、ビュー、アプリケーションでAppleが提供しているすべてのドキュメントをお読みください。

+0

あなたはおそらく、ウィンドウとビューの違いを説明できますか?だから私は5つの異なるペン先を持っている場合、どのように私は現在のペン先を閉じて、ボタンのプレスで別のコードを開くためにこのコードを使用するだろうか?あなたの助けに感謝します。 – Cristian

+2

私はあなた自身が研究のいくつかをしなければならないと恐れています。それは良い学習プロセスになるでしょう。基本を理解したら、この問題は解決するための問題ではありません。そのような偉大な答えには大変感謝しています。 – Vervious

+0

私はちょうどこの物の周りに私の頭を得ることができないので、私はちょうどすべてのドキュメントを読んでいるつもりだと思う:)感謝v多く! – Cristian

1

いくつかの意味でのウィンドウには、すなわち、それは3色のボタンやタイトル、そして何もを持って、 "フレーム" です。各ウィンドウは、ウィンドウのメインビューであるコンテンツビューを有し、コンテンツの表示を担当する。ボタン、テキスト、画像。コンテンツ自体は通常ビューとして実装されます。つまり、NSButtonとNSTextFieldはすべてNSViewのサブクラスです。

OSXビュードキュメントのこの部分が役に立つかもしれません:特に http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaViewsGuide/WorkingWithAViewHierarchy/WorkingWithAViewHierarchy.html#//apple_ref/doc/uid/TP40002978-CH4-SW13

、図3-1及び3-2を見てください。

私はこれが少し理解に役立つことを願っています。次に、あなたがやりたいことをするために、「重大な答え」に詳述されている手順に従います。

+0

ありがとう:] – Cristian

関連する問題