【问题标题】:How do you bind windows together in a Cocoa Application so they resize together?如何在 Cocoa 应用程序中将窗口绑定在一起,以便它们一起调整大小?
【发布时间】:2014-07-31 08:33:51
【问题描述】:
在过去几年为 iOS 开发之后,我正在尝试我的第一个 Cocoa 应用程序。我一直在“谷歌搜索”一段时间,但我想我没有使用正确的术语来找到我正在寻找的东西。
在许多应用程序 OSX 应用程序中,我看到这个小点(或者有时像 XCode 中那样根本没有点),它可以让您抓住“隐形”线?当它们都绑定在一起时,它将一次调整两个或三个窗口的大小。这是怎么做到的?我想在我正在构建的当前应用程序中实现它。我附上了一张图片来澄清我在说什么。
提前致谢
【问题讨论】:
标签:
objective-c
macos
cocoa
autolayout
【解决方案1】:
这些不是窗户。这些是 NSSplitView 的子视图
【解决方案2】:
这是一个NSSplitView。该行是分隔符,可以有3种不同的样式:
NSSplitViewDividerStyleThick = 1,
NSSplitViewDividerStyleThin = 2,
NSSplitViewDividerStylePaneSplitter = 3,
(您问题图像中的样式是 Pane Splitter 样式)。
可以使用 Interface Builder 轻松添加内容视图,或者使用 [NSView addSubview:] 方法以编程方式添加(NSSplitView 派生自 NSView)。
您将希望通过其委托 (NSSplitViewDelegate) 控制拆分器行为。
另请注意,您问题中的图像似乎在另一个拆分视图中显示了拆分视图,这是一种相当常见的视图布局方式。