0

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

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

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

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

2 回答 2

2

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

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

我想没有免费的午餐。

于 2012-09-18T01:03:32.617 回答
0

尝试这个:

[self.window.contentView setAutoresizesSubviews:YES];

而不是这个

[self.view setAutoresizesSubviews:YES];

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

- (void)windowDidResize:(NSNotification *)notification{ 
}
于 2012-09-18T05:22:52.937 回答