【问题标题】:auto resizing all views when NSWindow is resized调整 NSWindow 大小时自动调整所有视图的大小
【发布时间】:2012-09-17 23:17:57
【问题描述】:

当调整 NSWindow 的大小时,我正在尝试调整 NSViewController 中所有子视图的大小。 NSWindow 视图包含 NSViewController.view 作为子视图。我将 autoResizing 设置为 YES 并将 autoResizing 掩码设置为水平和垂直。

        [self.view setAutoresizesSubviews:YES];
    [background setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];

但是,这种技术对我不起作用。请注意,我所有的组件都是通过代码添加的,而不是使用 IB。 所以我的问题是:

  • 我应该添加什么才能使其自动调整大小?
  • 我使用 OpenGL 在另一个视图中绘制。我需要对新尺寸进行计算吗?当我将 cocos2d 用于另一个应用程序时,我不必担心计算。那么这里有没有类似的东西呢?

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:

    如果您希望 UI 组件响应布局更改,您需要设置布局约束。 在 IB 中,有一些默认值不是您想要的,但它们可以进行调整。

    自动调整大小是用词不当。根据预设的布局约束调整组件大小会是一个更好但更长的名称。

    我想没有免费的午餐。

    【讨论】:

      【解决方案2】:

      试试这个:

      [self.window.contentView setAutoresizesSubviews:YES];
      

      而不是这个

      [self.view setAutoresizesSubviews:YES];
      

      如果您仍然需要调整子视图的大小或重新定位,可以在委托函数中进行。

      - (void)windowDidResize:(NSNotification *)notification{ 
      }
      

      【讨论】:

        猜你喜欢
        • 2016-06-18
        • 1970-01-01
        • 2022-01-02
        • 2017-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多