当我调整NSWindow的大小时,我正在尝试调整NSViewController中的所有子视图。 NSWindow视图包含NSViewController.view作为子视图。我将autoResizing设置为YES,并将autoResizing mask设置为水平和垂直。
[self.view setAutoresizesSubviews:YES];
[background setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
然而,这种技术对我不起作用。请注意,我的所有组件都是通过代码而不是使用IB添加的。 所以我的问题是:
答案 0 :(得分:2)
如果您希望UI组件响应布局更改,则需要在UI组件上设置布局约束。 在IB中,默认值不是您想要的,但它们可以在那里进行调整。
自动调整大小是个用词不当。根据预设的布局约束调整组件大小将是一个更好但更长的名称。
我猜没有免费的午餐。
答案 1 :(得分:0)
试试这个:
[self.window.contentView setAutoresizesSubviews:YES];
而不是
[self.view setAutoresizesSubviews:YES];
如果您仍需要调整子视图的大小或重新定位,可以在委托功能中执行此操作。
- (void)windowDidResize:(NSNotification *)notification{
}