带有底栏和主视图的 NSWindow 使用情节提要

Posted

技术标签:

【中文标题】带有底栏和主视图的 NSWindow 使用情节提要【英文标题】:NSWindow with bottom bar and main view using storyboards 【发布时间】:2015-02-14 20:55:21 【问题描述】:

我正试图围绕 Mac OS X 的情节提要展开思考,但我在复制使用 XIB 可以轻松完成的行为时遇到了一些困难。我的应用程序的主窗口包含一个工具栏、一个内容区域和一个底栏。在底部栏中,我有各种控件,例如进度指示器和分段控件,用于选择在内容区域中显示哪个视图。窗口原型如下:

使用 XIB,我可以轻松地将分段控件放置在底部栏中,并将其操作连接起来,以根据选择的分段交换内容视图。到目前为止,我一直无法使用情节提要完成这种行为。如何才能做到这一点?我尝试了拆分视图,但无法修复底部窗格的大小,也无法消除分隔线。我希望它就像将视图从 IB 调色板拖到底部栏中一样简单,但不允许此操作。

【问题讨论】:

Interface Builder 完全有可能还没有用于情节提要的此功能。毕竟,OS X 上的情节提要刚刚在 Yosemite 中引入。 通过将底部栏控件定位在窗口的视图控制器中并为内容区域添加容器视图,我取得了一些进展。我仍在研究如何优雅地换出容器视图中的视图。 【参考方案1】:

您可以使用新的 NSTabViewController 作为连接到 NSWindowController 的主视图控制器。 NSTabViewController 可以让你拥有你想要的标签并在它们之间切换。它还支持在任何位置添加工具栏,因此您可以这样做:

    在 NSWindowController 中添加一个 NSToolbar, 为 NSTabViewController 添加工具栏支持并将其放置在底部(您也可以将选项卡放置在底部)。

这种布局应该可以让你满意吗?

您可以观看此视频,了解有关在 OS X 应用程序中使用 Storyboard 的更多信息(其中还有一些关于使用 NSTabViewController 的详细信息)

Storyboards and Controllers on OS X

【讨论】:

以上是关于带有底栏和主视图的 NSWindow 使用情节提要的主要内容,如果未能解决你的问题,请参考以下文章

如何从情节提要中的 didSelectRowAtIndexPath 打开视图控制器?

如何使用情节提要正确地转到嵌入式选项卡栏和导航控制器?

如何使用 LGSideMenuController 推送带有情节提要标识符的视图控制器?

从 xib 或带有情节提要的其他场景添加子视图

使用图像作为带有情节提要的静态表格视图的背景

使用 ios5 和情节提要推送带有参数的视图控制器