import Cocoa import FlutterMacOS @main class AppDelegate: FlutterAppDelegate { /// 关窗不退出(托盘常驻的核心开关)。 /// /// 红点按钮的真实 action 是 AppKit 私有 `_close:`(实测 macOS 15,并非文档所说 /// 的 performClose:),会绕过 performClose/close 的重写把窗口真正关闭;窗口关闭后 /// AppKit 询问本方法——Flutter 模板默认返回 true(关窗即退出),这正是"点红点 /// 直接退出、托盘消失"的根因。返回 false 后:窗口关闭时进程/HTTP 服务/托盘保持 /// 运行,托盘点击 makeKeyAndOrderFront 恢复窗口(xib releasedWhenClosed=NO, /// 窗口对象未释放)。真正退出只走托盘菜单 → NSApp.terminate / Cmd+Q。 override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return false } override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { return true } }