所以我正在创建一个mac OSX应用程序,现在我有一个主视图控制器设置为窗口的大小和一个NSView子视图在视图控制器顶部具有相同的帧大小。但是,这是我得到的结果:(我将NSView子视图粉红色)
我想要的是整个窗口被NSView子视图占用(所以整个窗口应该是粉红色的。)这是我的代码到目前为止:
在AppDelegate.m中:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
self.mainViewController = [[NSViewController alloc]
initWithNibName:Nil bundle:Nil];
self.mainViewController.view.frame = ((NSView *)self.window.contentView).bounds;
[self.window.contentView addSubview:self.mainViewController.view];
}
然后在我的视图控制器中:
-(void)loadView
{
[super loadView];
NSView *myView = [[NSView alloc] initWithFrame:self.view.frame];
CALayer *viewLayer = [CALayer layer];
[viewLayer setBackgroundColor:CGColorCreateGenericRGB(100.0, 0.0, 0.0, 0.4)];
[myView setWantsLayer:YES];
[myView setLayer:viewLayer];
[self.view addSubview:myView];
}
我做错了什么?
答案 0 :(得分:0)
您应该在view controller
方法的loadView:
中添加子视图,而不应在此处设置view controller
的视图:
-(void)loadView
{
.
.
.
// [self.view addSubview:myView]; //update this to
[self setView: myView];
}