以编程方式打开窗口时,NSToolbar存在问题

时间:2018-10-15 10:41:12

标签: macos swift4 nswindow nswindowcontroller nstoolbar

我正在制作一个应用程序,请求它检查UserDefaults中是否存在值。如果没有,它将打开一个窗口,要求用户选择将数据库放置在何处并将路径保存在UserDefaults中。如果已经听到路径,则打开主窗口。

为此,我有两个情节提要板,“主”提要包含主窗口的所有控制器,“欢迎”情节提要包含欢迎屏幕。

我的主窗口包含一个带有项目的NSToolbar。问题是,如果我将主窗口控制器用作初始控制器,则工具栏可以正常工作,但从不会调用“欢迎”屏幕。因此,我删除了“是初始控制器”选项,但是如果检查appDelegate中applicationDidFinishLaunching中的条件,则当我从此处实例化窗口时(一切正常,在正确条件下打开了正确的窗口),工具栏将永远无法工作(按钮的操作从未调用,我检查了打印件)。

这是我在appDelegate中的代码:

func applicationDidFinishLaunching(_ aNotification: Notification) {
    let userDefaults = UserDefaults.standard

    if userDefaults.string(forKey: "Database Path") == nil {
        let storyboard = NSStoryboard(name: "Welcome", bundle: nil)
        let initiate = storyboard.instantiateController(withIdentifier: "Welcome") as! WelcomeWindowController
        initiate.window?.makeKeyAndOrderFront(self)
    } else {
        let storyboard = NSStoryboard(name: "Main", bundle: nil)
        let initiate = storyboard.instantiateController(withIdentifier: "Main") as! MainWindowController
        initiate.window?.makeKeyAndOrderFront(self)

    }

}

实例化主窗口控制器时是否缺少某些内容?

0 个答案:

没有答案