gbd*_*vid 8 macos nstoolbar swift nssplitviewcontroller xcode7
嗨我已经看过这个问题已经问了几次但是没有明确的答案,所以我为xcode 7和swift2创建了它(这可能会改变一些事情).
我使用Xcode 7和Cocoa OSX Story board + swift2创建了一个项目,所以我的项目开始于一个连接到NSViewController 的NSWindowController(正如预期的那样!).我在我的窗口控制器中添加了一个NSToolbar,并在工具栏中添加了一个NSButton.我将我的NSViewController更改为新的NSSplitViewController之一,它链接到三个NSViewController并水平显示它们的视图 - 使用垂直分隔符 - (类似于您在照片应用程序中看到的布局或Yosemite +中的页面).我的最终目标是"我的工具栏"中的按钮显示并隐藏第一个拆分.
这是我的理解,并且我希望实现这一点我应该在NSSplitViewController中创建一个动作,它或多或少地改变了它们在这里工作的方式约束:如何在mac中折叠和展开视图应用?.
然后以某种方式将此操作链接到工具栏中的NSButton ...它恰好位于NSWindowController中(远远超出层次结构中)...
我已经解决了有关NSToolbar和故事板的其他问题,但未能实现我的目标:
Apple确实(再次)在WWDC15中提到他们为osx和拥有视图控制器的拆分视图控制器创建了故事板,以便您可以将逻辑和工作移动到特定的视图控制器,因此我期望从在我的拆分视图控制器内部,因为这是需要更改的目标.
有谁知道如何从视图控制器本身实现这一点?我真的无法找到一种方法将ToolBarItem连接到它.
好的,我几天前就创建了这个问题,到目前为止还没有答案,所以我用我最近为克服这个问题所做的事情来回答。
创建 Xcode 项目后,我这样做了:
为每个 NSSplitViewItem 添加了一个 IBOutlet。例如:
@IBOutlet 弱变量 mySplitViewItem:NSSplitViewItem!
为 NSWindowController 创建了一个子类 WindowController
添加了一个属性,可将窗口控制器的内容获取为MySplitViewController
var mySplitViewController: MySplitViewController { return self.window?.contentViewController as! 我的SplitViewController }
现在我可以在我创建的操作中从窗口控制器访问分割视图控制器的属性:
mySplitViewController。mySplitViewItem.collapsed = true
我创建了一些示例代码来执行此操作(但使用视图控制器并更改此处标签的文本,以防万一有人想查看具有此行为的工作项目。还有一篇关于它的博客文章:)
| 归档时间: |
|
| 查看次数: |
2243 次 |
| 最近记录: |