Dar*_*ren 3 cocoa nssplitview swift
我正在尝试迁移我的Objective-C,现在将Swift知识改进为Mac OS X的应用程序.陡峭的学习曲线!
我试图NSSplitViewController在"详细视图"中加载具有不同视图的视图,具体取决于您在"主视图"上按下的按钮.以下教程和搜索时间让我一无所获.
我目前有:
import Cocoa
class MainSplitView: NSSplitViewController, BlissWindowDelegate {
var masterViewController: vcMainMenu {
let masterItem = splitViewItems[0] as! NSSplitViewItem
return masterItem.viewController as! vcMainMenu
}
override func viewDidLoad() {
super.viewDidLoad()
masterViewController.delegate = self
}
func userDidSelectFunction(function: String) {
switch function {
case "app":
println("You have selected to load the appointment screen")
case "cust":
println("You have selected to load the customer screen")
case "login":
println("I think I am here and you've clicked login?")
let detailItem = splitViewItems[1] as! NSSplitViewItem
// Trying to load the views here ... but no idea how to
case "admin":
println("You've clicked admin")
default:
println("Nothing here ...")
}
}
}
Run Code Online (Sandbox Code Playgroud)
我BlissWindowDelegate用来告诉我按下了哪个按钮.然后我尝试splitViewItem[1]从故事板加载到各种视图.但没有运气.有人能指出我正确的方向吗?即使是一个体面的参考?谷歌上没有任何东西似乎有所帮助.
谢谢.
Tay*_*lor 13
因为听起来你有一组可以显示的特定细节窗格,所以使用a NSTabViewController可能是实现这一目标的最佳方法.
基本上,你NSSplitViewController有两个孩子:主视图控制器,和NSTabViewController.选项卡视图控制器为每个详细信息窗格都有自己的子项.由于选项卡视图控制器不应显示自己的选项卡选择UI(主窗格正在执行此操作),因此您可以将其设置tabStyle为.Unspecified.故事板看起来像这样:

您MainSplitViewController还可以参考选项卡视图控制器detailController.然后userDidSelectFunction(),您将detailController设置selectedTabViewItemIndex为相应详细信息窗格的.NSTabViewController将负责视图转换,包括在窗格之间设置动画(如果设置).