在contentView中更改NSView层次结构

时间:2012-10-24 22:08:25

标签: macos cocoa nsview

我在NSWindow contentView中有4个NSView(A,B,C,D),一个在另一个上面(就像一堆NSViews)。我使用IB添加了视图并将它们与文件所有者连接起来。每个视图都有一个NSViewController。我想以这种方式订购视图| A | B | C | D |。但在加载所有视图后,这就是我所拥有的:| A | B | D | C |。我想在适当的位置重新排序NSView C.

我尝试使用addSubview:locate:relativeTo:     [[self.window contentView] addSubview:viewC locate:NSWindowBelow relativeTo:viewD];

但现在NSView从未显示过。

如何更改viewC订单?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过更改左侧面板中的顺序来控制xib中视图的相对“垂直”(前/后)位置:

panel in Interface Builder

我在这里组织了不同观点的方式,“View D”位于前面,“View C”位于其后面,“View B”位于“View C”后面,“View A”位于其后面。结果如下:

ordered view demo

对于这个演示,我已经制作了四个视图中的每一个layer-hosting并设置了视图的背景颜色,以便

  • 查看A为红色
  • 查看B为绿色
  • 查看C为蓝色
  • 查看D为黑色

正如你所看到的,最底层的视图,视图D,在它后面是View C,依此类推。