Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何在OSX中重新打开在情节提要中创建的关闭窗口_Macos_Swift_Xcode Storyboard - Fatal编程技术网

Macos 如何在OSX中重新打开在情节提要中创建的关闭窗口

Macos 如何在OSX中重新打开在情节提要中创建的关闭窗口,macos,swift,xcode-storyboard,Macos,Swift,Xcode Storyboard,我的问题是这个问题的关键,但答案似乎不适用于Swift/故事板。 基本上,我有一个或多或少带有菜单、窗口和ViewController的默认应用程序。如果用户在应用程序运行时关闭窗口,我如何重新打开它 我已经在应用程序中创建了一个操作,用于连接“打开”菜单项。在这个函数中,我希望确保窗口是可见的。因此,如果用户关闭了它,它应该会重新出现。但我不知道如何进入关闭的窗口。故事板似乎不允许我在我的应用程序代理中为我的窗口创建一个出口。这很容易归档,即使它不是一个优雅的解决方案。为主窗口控制器的应用程

我的问题是这个问题的关键,但答案似乎不适用于Swift/故事板。

基本上,我有一个或多或少带有菜单、窗口和ViewController的默认应用程序。如果用户在应用程序运行时关闭窗口,我如何重新打开它


我已经在应用程序中创建了一个操作,用于连接“打开”菜单项。在这个函数中,我希望确保窗口是可见的。因此,如果用户关闭了它,它应该会重新出现。但我不知道如何进入关闭的窗口。故事板似乎不允许我在我的应用程序代理中为我的窗口创建一个出口。

这很容易归档,即使它不是一个优雅的解决方案。为主窗口控制器的应用程序代理添加新属性。在下面的示例中,我调用控制器
MainWindowController

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
    var mainWindowController: MainWindowController? = nil
    func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
        mainWindowController?.window?.makeKeyAndOrderFront(self)
        return false
    }
}
在初始化主窗口控制器时,我在应用程序代理中注册控制器:

class MainWindowController: NSWindowController {
    override func windowDidLoad() {
        super.windowDidLoad()
        // ...initialisation...
        // Register the controller in the app delegate
        let appDelegate = NSApp.delegate as! AppDelegate
        appDelegate.mainWindowController = self
    }
}
仅此而已,对我来说非常有效