Cocoa-以编程方式垂直拉伸NSView,向下移动之后的所有内容

Cocoa-以编程方式垂直拉伸NSView,向下移动之后的所有内容,cocoa,user-interface,resize,nsview,Cocoa,User Interface,Resize,Nsview,我有三个相互堆叠的NSView,我希望能够通过编程调整中间视图的大小以垂直拉伸,将底部视图向下移动与中间视图拉伸相同的量 这是一张ASCII图片: |--------------| | 1 | |--------------| |--------------| | 2 | |--------------| |--------------| | 3 | |--------------| 基本上,我希望能够垂直拉伸NSView

我有三个相互堆叠的NSView,我希望能够通过编程调整中间视图的大小以垂直拉伸,将底部视图向下移动与中间视图拉伸相同的量

这是一张ASCII图片:

|--------------|
|      1       |
|--------------|

|--------------|
|      2       |
|--------------|

|--------------|
|      3       |
|--------------|
基本上,我希望能够垂直拉伸NSView 2,这样得到的图片如下所示:

|--------------|
|      1       |
|--------------|

|--------------|
|              |
|      2       |
|              |
|--------------|

|--------------|
|      3       |
|--------------|
正确的方法是什么?谢谢


编辑:这里有一个后续问题

我该怎么做呢

|--------------|
|      1       |
|--------------|

|--------------|
|      2       |
|--------------|

|--------------|
|     2.5      |
|--------------|

|--------------|
|      3       |
|--------------|
为此:

|--------------|
|      1       |
|--------------|

|--------------|
|              |
|      2       |
|              |
|--------------|

|--------------|
|              |
|     2.5      |
|              |
|--------------|

|--------------|
|      3       |
|--------------|

听起来您需要一个
NSSplitView
或。

听起来您需要一个
NSSplitView
或。

最简单的方法是使用自动调整大小的掩码

您可以使用编程设置自动调整大小掩码

- (void)setAutoresizingMask:(NSUInteger)mask
或在界面生成器中

在IB中,第一个视图的自动访问掩码是

第二点:

第三:


最简单的方法是使用自动调整大小的蒙版

您可以使用编程设置自动调整大小掩码

- (void)setAutoresizingMask:(NSUInteger)mask
或在界面生成器中

在IB中,第一个视图的自动访问掩码是

第二点:

第三:


感谢您提供CHLayoutManager的链接!看起来它真的很有用。谢谢链接到CHLayoutManager!看起来它真的很有用。太好了,这很好用。作为后续问题,如果我希望在2之后和3之前插入另一个NSView(我们称之为2.5),以便在主窗口调整大小时2和2.5都垂直扩展在一起,该怎么办?我添加了ASCII图像来演示后续问题。2.5视图的自动调整大小掩码应与第二个相同。。。确保正确设置框架@gcamp:你说的正确设置帧是什么意思?这对我来说不太合适,所以我应该检查框架的哪些方面?@gcamp:确切的问题是:当我拉伸窗口时,2和2.5重叠。太好了,这非常有效。作为后续问题,如果我希望在2之后和3之前插入另一个NSView(我们称之为2.5),以便在主窗口调整大小时2和2.5都垂直扩展在一起,该怎么办?我添加了ASCII图像来演示后续问题。2.5视图的自动调整大小掩码应与第二个相同。。。确保正确设置框架@gcamp:你说的正确设置帧是什么意思?这对我来说不太合适,所以我应该检查一下框架的哪些方面?@gcamp:确切的问题是:当我拉伸窗口时,2和2.5重叠了。