Swift中的MacOS菜单

时间:2018-01-29 20:30:12

标签: swift macos swift3 nsapplication

我希望在我的应用程序中创建一个菜单侧栏,它可以显示和控制菜单旁边的视图控制器。类似于以下内容: Target User Interface 我想避免使用TableView作为菜单,但我并不完全反对它。我尝试过使用TableView和Container,以及TabViewController,但我似乎无法看到如上所示。

提前感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

灵感来自“您正在寻找的是NSSplitViewController”

https://stackoverflow.com/questions/30720730/change-views-inside-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有两个childViewControllers;因此它是这些控制器的父级,可以通过两个子视图控制器中的parent?方法进行访问。在您指定tabViewController后,您可以设置selectedTabViewItemIndex[value]来切换NSTabViewController中的视图。