我试图迁移我的目标-C,现在改进Swift知识到一个应用程序的Mac陡峭的学习曲线!
如果您愿意的话,我正在尝试在“细节视图”中加载一个包含不同视图的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 ...")
}
}
} 我用BlissWindowDelegate告诉我按了哪个按钮。然后,我尝试从一个故事板加载到splitViewItem[1]中的各种视图。但没有运气。谁能给我指明正确的方向吗?即使是为了一个像样的参考?谷歌上的任何东西似乎都没有帮助。
谢谢。
发布于 2015-06-09 04:12:30
因为听起来您有一组可以显示的特定细节窗格,所以使用NSTabViewController可能是实现这一目标的最佳方法。
基本上,您的NSSplitViewController有两个子组件:主视图控制器和NSTabViewController。选项卡视图控制器对于每个细节窗格都有自己的子控件。由于选项卡视图控制器不应该显示自己的选项卡选择UI (主窗格正在这样做),所以将tabStyle设置为.Unspecified。故事板看起来应该是这样的:

您的MainSplitViewController还将引用选项卡视图控制器detailController。然后,在userDidSelectFunction()上,将详细控制器的selectedTabViewItemIndex设置为相应详细信息窗格的selectedTabViewItemIndex。NSTabViewController将负责视图转换,包括在窗格之间动画,如果设置这样做的话。
https://stackoverflow.com/questions/30720730
复制相似问题