代码之家  ›  专栏  ›  技术社区  ›  Ckacmaster

Swift中的MacOS菜单

  •  0
  • Ckacmaster  · 技术社区  · 8 年前

    我希望在我的应用程序中创建一个菜单侧栏,它可以显示和控制菜单之外的视图控制器。如下所示: Target User Interface 我想避免在菜单中使用桌面视图,但我并不完全反对。我尝试过使用TableView、容器和TabViewController,但似乎两者都不能像上面那样。

    感谢您的帮助,提前谢谢。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Ckacmaster    8 年前

    灵感来自“您正在寻找的是所谓的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 .