我有一個窗口的區域(在我的MainMenu.xib),我想動態地填充與不相關的「視圖」,如NSTable,IKImageBrowserView等在不同的點的時間取決於一些用戶選擇的標準。動態加載可可中的窗口的一部分
- 如何定義,使得它可以「改爲」有不同的看法這方面的窗口?
- 如何將一個表或其他視圖附加到窗口的這個區域?
(是否足以放置有一個通用的NSView,每次添加一個子視圖?我是相當新的可可,所以任何指針歡迎)
我有一個窗口的區域(在我的MainMenu.xib),我想動態地填充與不相關的「視圖」,如NSTable,IKImageBrowserView等在不同的點的時間取決於一些用戶選擇的標準。動態加載可可中的窗口的一部分
(是否足以放置有一個通用的NSView,每次添加一個子視圖?我是相當新的可可,所以任何指針歡迎)
在現代可可,這是視圖控制器的工作。 Cathy Shive有一些關於它們的好博客文章(1,2,3),和合作作者a more useful view controller class比基本的NSViewController。
有幾個方法可以做到這一點。我發現放入「自定義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
我個人會爲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];