2009-07-01 45 views
3

我有一個窗口的區域(在我的MainMenu.xib),我想動態地填充與不相關的「視圖」,如NSTable,IKImageBrowserView等在不同的點的時間取決於一些用戶選擇的標準。動態加載可可中的窗口的一部分

  • 如何定義,使得它可以「改爲」有不同的看法這方面的窗口?
  • 如何將一個表或其他視圖附加到窗口的這個區域?

(是否足以放置有一個通用的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];