import Cocoa import FlutterMacOS @main class AppDelegate: FlutterAppDelegate { // 托盘常驻:关闭窗口只隐藏到托盘,不终止 app(window_manager preventClose + hide // 负责隐藏;此处 false 兜底,确保即便窗口真关闭 app 也留在托盘)。 override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return false } override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { return true } // 隐藏到托盘后点 Dock 图标 → 唤回主窗口。窗口被 window_manager.hide()(orderOut:) // 隐藏时 hasVisibleWindows=false,系统只发 reopen 事件、不会自动显示;不接管就"点了没反应"。 override func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool { if !flag { mainFlutterWindow?.makeKeyAndOrderFront(nil) NSApp.activate(ignoringOtherApps: true) } return true } }