gpt4 book ai didi

swift - 在 NSSplitViewController 中更改 View

转载 作者:搜寻专家 更新时间:2023-10-31 21:51:53 25 4
gpt4 key购买 nike

我正在尝试迁移我的 Objective-C,现在将 Swift 知识提高到 Mac OS X 的应用程序。陡峭的学习曲线!

我正在尝试根据在“主视图”上按下的按钮在“详细 View ”中加载具有不同 View 的 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 告诉我按下了哪个按钮。然后,我尝试将 Storyboard 中的各种 View 加载到 splitViewItem[1] 中。但是没有运气。谁能指出我正确的方向?即使是一个体面的引用? Google 上似乎没有任何帮助。

谢谢。

最佳答案

因为听起来您有一组可以显示的特定详细信息 Pane ,使用 NSTabViewController 可能是完成此操作的最佳方法。

基本上,您的 NSSplitViewController 有两个 child :主视图 Controller 和一个 NSTabViewController。选项卡 View Controller 对于每个详细信息 Pane 都有自己的子项。由于选项卡 View Controller 不应显示其自己的选项卡选择 UI(主 Pane 正在执行此操作),因此您可以将 tabStyle 设置为 .Unspecified。 Storyboard看起来像这样:

Storyboard with NSSplitViewController and NSTabViewController

您的 MainSplitViewController 还将引用选项卡 View Controller detailController。然后在 userDidSelectFunction() 上,您可以将 detailController 的 selectedTabViewItemIndex 设置为相应详细信息 Pane 的那个。 NSTabViewController 将负责 View 转换,包括在 Pane 之间设置动画(如果设置的话)。

关于swift - 在 NSSplitViewController 中更改 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30720730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com