gpt4 book ai didi

macos - 带有 Split View的 Swift 中的源列表边栏实现

转载 作者:行者123 更新时间:2023-12-02 03:21:08 25 4
gpt4 key购买 nike

我在尝试为应用实现侧边栏导航时遇到问题。考虑到源列表在 OS X 应用程序中如此突出,并且 Apple 的人机界面指南将源列表称为在应用程序内导航的理想方式,我很惊讶没有更多可用资源(当然我不能无论如何找到)。我能找到的与 Split View相关的所有内容似乎都指的是 ios。

我对实现源列表的内容没有任何问题,当涉及到基于源列表中的选择的 View 交换时,我的问题就出现了。

本质上,我希望用户在 Split View的主要侧的源列表中选择一个选项,然后在 Split View的详细侧加载相应的 View 。我不确定是否有一种简单的方法可以使用 Storyboard来实现类似的东西,例如 tabview Controller ?如果没有,是否有人能够快速建议一个基本的实现来帮助我入门?我不确定从 View 交换方面开始。

提前致谢。

编辑:

在我之前的帖子中,我在下面包含了 View 交换的基本实现,但是当 View 被替换时,之前的 View 仍然存在。除了我的问题之外,如何在添加新 View 之前删除以前的 View ?我的代码行 removeFromSuperView() 似乎导致了重大问题!

import Cocoa

AppController 类:NSObject {

@IBOutlet weak var ourView: NSView!
var ourViewController: NSViewController!


let kFirstViewTag = 0
let kSecondViewTag = 1
let kFirstView = "FirstViewController"
let kSecondView = "SecondViewController"



@IBAction func changeView(sender: NSPopUpButton) {
let tag = sender.selectedTag()
self.changeViewController(tag)


}

func changeViewController(tag: Int){

ourViewController.view.removeFromSuperview()


switch tag{
case kFirstViewTag:
self.ourViewController = FirstViewController(nibName: kFirstView, bundle: nil)

case kSecondViewTag:
self.ourViewController = SecondViewController(nibName: kSecondView, bundle: nil)

default: print("There was an error with the view controller change")

}

ourView.addSubview(ourViewController.view)

}

override func awakeFromNib() {
self.changeViewController(kFirstViewTag)
}

最佳答案

任何对解决我遇到的 View 问题的解决方案感兴趣的人,我只是用以下代码替换 View ,从 super View 中删除:self.ourViewController?.view.removeFromSuperview()

我遇到的问题是由于 View Controller 是可选值。我的疏忽。

然后可以通过使用源列表的选择更改属性来触发 View 更改来调整侧边栏源列表。

如果有人感兴趣,我会在完成后发布完整的解决方案。

关于macos - 带有 Split View的 Swift 中的源列表边栏实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33324684/

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