【问题标题】:NSView OverLaying NSWindow Bottom BarNSView 覆盖 NSWindow 底栏
【发布时间】:2012-08-10 03:10:56
【问题描述】:

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

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

【问题讨论】:

  • 如何添加这个其他视图?您是否有理由不能使用拆分视图默认提供的自定义视图?
  • 我使用的是拆分视图提供的自定义视图。我通过将子视图添加到默认拆分视图来获得上述效果。对不起,我应该更清楚。我的错。最右边的视图是没有子视图的拆分视图的一部分,左视图和中间视图是我添加的子视图。最左边的视图没有任何自动调整大小的掩码,中间的视图有一个自动调整大小的掩码设置为 setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable 女巫给了我几乎想要的行为,尽管它覆盖了底部栏。

标签: cocoa resize nsview nswindow nssplitview


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    - (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
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-12
      • 2016-04-23
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多