嗨,我已经看过这个问题了好几次了,但是还没有确切的答案,所以我为xcode 7和swift2创建了它(无论如何可能会有所改变)。
我使用Xcode 7和Cocoa OSX Story board + swift2创建了一个项目,所以我的项目以一个连接到NSViewController的 NSWindowController (按预期!)开始。我向窗口 Controller 添加了 NSToolbar ,并向工具栏添加了 NSButton 。我将NSViewController更改为新的 NSSplitViewController 之一,该链接链接到三个 NSViewController ,并使用垂直分隔线水平显示其 View (类似于您在照片应用程序或优胜美地+页面中看到的布局)。我的最终目标是显示和隐藏第一个拆分的“我的工具栏”中的按钮。
我的理解是,并且我希望能实现这一点,我应该在NSSplitViewController中创建一个 Action ,该 Action 或多或少会改变它们在此处的工作方式约束How to do collapse and expand view in mac application?。
然后以某种方式将此 Action 链接到工具栏中的NSButton ...恰好在NSWindowController中(在层次结构中处于隔离状态)。
我已经经历了有关NSToolbar和 Storyboard 的其他问题,但未能实现我的目标:
苹果确实在WWDC15中再次提到,他们为osx和拥有 View Controller 的拆分 View Controller 创建了 Storyboard ,以便您可以将逻辑和工作转移到特定的 View Controller ,因此我期望从在我的拆分 View Controller 中,因为这是需要更改的目标。
有谁知道如何从 View Controller 本身实现这一目标?我确实还没有找到将ToolBarItem连接到它的方法。
最佳答案
好的,我已经在几天前提出了这个问题,到目前为止还没有答案,所以我已经回答了我最近为解决该问题所做的工作。
创建Xcode项目后,我执行了以下操作:
@IBOutlet弱var mySplitViewItem:NSSplitViewItem!
var mySplitViewController:MySplitViewController {
返回self.window?.contentViewController为! MySplitViewController
mySplitViewController。 mySplitViewItem.collapsed = true
我创建了一些执行此操作的示例代码(但是使用 View Controller 并更改标签here的文本,以防万一有人希望看到具有此行为的工作项目。还有一个blog post :)