0

在以前版本的 mac os 上,一切都很好,加载窗口,下面的代码工作正常。但是随着第一次正式发布,Big Sur MainWindow 总是 nil

func applicationDidFinishLaunching(_ aNotification: Notification) {
    self.applicationCoordinator.setupApplicationLanguage(language: .en)
    
    windowViewController = MainWindowController()
    windowViewController?.windowDelegate = self
    windowViewController?.window?.makeKeyAndOrderFront(self)
    windowViewController?.showWindow(self)

    NSApp.activate(ignoringOtherApps: true)

    NSApplication.shared.mainWindow?.title = ""
    NSApplication.shared.mainWindow?.appearance = NSAppearance(named: .aqua)
    NSApplication.shared.mainWindow?.styleMask.remove(NSWindow.StyleMask.resizable)
    
    self.applicationCoordinator.setupApplicationWindowMinSize()
    self.applicationCoordinator.loadInitialCoordinator(with: self.applicationCoordinator)
  }

NSApplication.shared.windows 内部包含 MainWindowController 窗口,但 NSApplication.shared.mainWindow 将为 nil。

此错误的解决方案: 以前可以在应用程序激活之前更新 NSApplication.shared.mainWindow。但从 Big Sur 开始,它已被修复,当应用程序变为活动状态时,NSApplication.shared.mainWindow 将设置为其窗口堆栈中的第一个窗口

4

0 回答 0