我希望在我的应用程序中创建一个菜单侧边栏,除了菜单之外,它还可以显示和控制 View Controller 。像下面这样: 我想避免使用 TableView 作为菜单,但我并不完全反对它。我尝试过使用 TableView 和 Container,以及 TabViewController,但我似乎都无法像上面那样。
感谢任何帮助,提前致谢。
最佳答案
灵感来自“你正在寻找的东西叫做 NSSplitViewController”
代码如下:
class MenuController: NSViewController {
override func loadView() {
super.loadView()
tabViewController = parent?.childViewControllers[1] as! NSTabViewController! //The parent is the SplitView, so the child in the second view would be the TabViewController
}
@IBOutlet weak var FirstButton: NSButton!
@IBOutlet weak var SecondButton: NSButton!
var tabViewController = NSTabViewController()
@IBAction func FirstView(_ sender: Any) {
tabViewController?.selectedTabViewItemIndex = 0 //Now that the TabViewController is specified, one may set the current view controller within the tabview.
}
@IBAction func SecondView(_ sender: Any) {
tabViewController?.selectedTabViewItemIndex = 1 //Shows the second view in NSTabViewController
}
}
在图中,NSSplitViewController
有两个 childViewController
;因此它是这些 Controller 的父级,并且可以通过两个 subview Controller 中的 parent?
方法进行访问。指定 tabViewController
后,您就可以设置其 selectedTabViewItemIndex[value]
,以切换 NSTabViewController
中的 View 。
关于swift - Swift 中的 MacOS 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48509477/