NSView OverLaying NSWindow Bottom Bar

时间:2012-08-10 03:10:56

标签: cocoa resize nsview nswindow nssplitview

对于我的生活,我无法弄清楚这一点。我正在为Mountain Lion工作Xcode。我无法将NSView添加到我的主要NSWindow的NSSplit View中。我的拆分视图按预期工作,但当我向其添加另一个视图时,视图覆盖了我的窗口的底部栏,这不是我想要的行为。

enter image description here

我已附上这张照片,以便了解我正在处理的事情。我知道原点(0,0)是任何视图的左下角,虽然我想要发生的是视图填充拆分视图并调整大小而不必手动调整视图大小,而不是重叠底栏。请任何帮助都会很棒。

2 个答案:

答案 0 :(得分:0)

应用程序的更好照片应该首先上传它。对不起

enter image description here

答案 1 :(得分:0)

我认为新的开发库似乎要求你使用布局约束。如果有人遇到同样的问题,这是我的代码。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
     NSView * contentView = [window contentView];


    splitViewController = [[MainSplitViewController alloc]initWithNibName:@"MainSplitViewController" bundle:[NSBundle mainBundle]];

    NSView * subView = splitViewController.view;

    [subView setTranslatesAutoresizingMaskIntoConstraints:NO];

    [contentView addSubview:splitViewController.view];

     NSDictionary *views = NSDictionaryOfVariableBindings(subView);


    [contentView addConstraints:
     [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[subView]|"
                                             options:0
                                             metrics:nil
                                               views:views]];

    [contentView addConstraints:
     [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[subView]-32-|"
                                             options:0
                                             metrics:nil
                                               views:views]];






    [window setContentBorderThickness:32.0 forEdge:NSMinYEdge];
    [window autorecalculatesContentBorderThicknessForEdge:NSMinYEdge];

    // Insert code here to initialize your application
}