2009-07-01 4 views
3

NSTable、IKImageBrowserViewなどの無関係な「ビュー」を異なるポイントで動的に設定したいウィンドウの領域(MainMenu.xib内)がありますいくつかのユーザーが選択した基準に依存します。ココアのウィンドウの一部を動的にロードする

  • さまざまなビューで「置き換えられる」ように、この領域を定義するにはどうすればよいですか?
  • ウィンドウのこの領域にテーブルなどのビューを追加するにはどうすればよいですか?

(それは十分にあり、一般的なNSViewのを配置し、サブビューを毎回追加することです?私はココアにかなり新しいですので、任意のポインタを歓迎いたします)

答えて

1

それを行うにはいくつかの方法があります。 。私は、 "カスタムnsview"を入れて、それをwindowDidLoadの実際のビューに置き換えるのは簡単だと思います。

@interface MyController : NSWindowController 
{ 
    IBOutlet NSView* dummyView; 
} 
@end 

@implementation MyController 
-(void)windowDidLoad{ 
    NSView* actualView = ...; //create the real view here 
    [actualView setFrame:[dummyView frame]]; 
    [actualView setAutoresizingMask:[dummyView autoresizingMask]]; 

    NSView* superview = [dummyView superview]; 
    [dummyView removeFromSuperview]; 
    [superview addSubview:actualView]; 

    dummyView = actualView; //just incase dummyView is ever used again 
} 
@end 
0

私は個人的に2つのセクションに2つのビューを追加します。 topViewとbottomViewは、インターフェースビルダーのリンクを使用してコードにリンクします。そこから、あなたが各ビューのコンテンツを管理することができます

addSubview(のUIViewまたはオブジェクトを受け取るオブジェクトの関数である)

あなたに個々のオブジェクトまたはビューを追加するためにこれを使用することができます

[topView addSubview:roundedUIButton_instance]; 

OR

[topView addSubview:another_view_instance]; 

removeFromSupe:のような二つの主な意見rview(自己を削除するために使用されるオブジェクトの関数である)現代のココアで

[roundedUIButton_instance removeFromSuperview]; 

OR

[another_view_instance removeFromSuperview]; 
関連する問題