Ошибка при втором щелчке по пункту меню в Swift - PullRequest
0 голосов
/ 13 июля 2020

Я пишу NSApplication (Swift 5.0, Storyboard, MacOS) с несколькими windows. Я борюсь с Manu.

Я хочу, чтобы MenuItem закрывал все открытые windows и открывал новое окно с MainFrame приложения.

Для этого я подключил MenuItem к следующему действию в AppDelegate:

@IBAction func menuMain(_ sender: Any) {
    let windowController1 = NSApplication.shared.orderedWindows
    for windows in windowController1 {
        windows.close()
    }
    let mainStoryBoard = NSStoryboard(name: "Main", bundle: nil)
    let viewController = mainStoryBoard.instantiateController(withIdentifier: "MainFrame3") as! NSViewController
    
    let window = NSWindow()
    window.contentViewController = viewController
    window.makeKey()
    window.setIsVisible(true)
}

В первый раз, когда я нажимаю на элемент меню, все работает нормально. Но когда я щелкаю по нему второй раз, приложение вылетает, и я получаю следующую ошибку, указывающую на файл AppDelegate: «Поток 1: EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0)»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...