我有一个问题,我现在试图解决很长一段时间。项目文件也提供。
所以我有以下想法,有一个带有按钮的侧边栏,当点击按钮时,它只切换右侧内容。
我最初创建的项目只有一个故事板。 Window启动第一个ViewController,带有按钮和自定义视图。
我需要的是当按下其中一个按钮时,自定义视图被另一个ViewController的内容替换。只是视图,而不是整个以前的视图控制器被另一个视图控制器取代。
我该怎么做?塞格斯?图层?请急需帮助,因为我无法弄清楚故事板,但想与他们合作很多。这将让我开始。
我想的另一个选择是,如果我使用splitview它会更好吗?然后我可能会用另一个完全正确的替换右侧视图sontroller?
答案 0 :(得分:0)
我用textable创建它但是是相同的。
现在转到appdelegate并创建此函数 " // APP DIRECTOR
//使用: // let act = MainView(nibName:" MainView",bundle:nil) // app.show(行动!) func show(_ newController:ControllerType,with message:Parameters?= nil){ 让newView = newController.view
if let frame = NSApp.mainWindow?.contentView?.frame {
newView.frame = frame // Resize the view to the window instead
}
guard let main = NSApp.mainWindow?.contentViewController else { return }
if main.childViewControllers.count < 1 { // if no controllers, then it's main controller
main.addChildViewController(newController) // add new controller
main.view.addSubview(newView) // add new view to main view
if message != nil {
newController.notify(message)
}
} else {
let current = main.childViewControllers.last // get lasr controller as current before adding new
main.addChildViewController(newController) // add new controller
main.transition(from: current!, to: newController, options: [.crossfade]){
if message != nil {
newController.notify(message)
}
}
}
} &#34;
答案 1 :(得分:0)
您可以尝试使用NSTabView并根据需要插入NSTabViewItem对象。每个NSTabView都可以使用自定义NSViewController启动。若要隐藏默认选项卡按钮,可以将NSTabView的边框类型设置为“无”。可以通过selectTabViewItem()以编程方式切换选项卡。