import Cocoa import FlutterMacOS class MainFlutterWindow: NSWindow { override func awakeFromNib() { let flutterViewController = FlutterViewController() self.contentViewController = flutterViewController // 桌面默认窗口 920×600(对齐设计稿 ui_kits/desktop),最小 720×560。 let defaultSize = NSSize(width: 920, height: 600) self.setContentSize(defaultSize) self.contentMinSize = NSSize(width: 720, height: 560) self.center() RegisterGeneratedPlugins(registry: flutterViewController) // P1 方案B:VPN 原生控制通道(NETunnelProviderManager 启停 PacketTunnel)。 // 需 VpnChannel.swift 已加入 Runner target 的 Compile Sources。 VpnChannel.register(with: flutterViewController.registrar(forPlugin: "VpnChannel")) super.awakeFromNib() // 开机自启(登录项带 --autostart):不弹主窗口,直接隐藏到托盘(与 Windows 一致)。 // Dart 侧 main() 也会 windowManager.hide();这里原生 orderOut 兜底,避免 storyboard // "Visible At Launch" 把窗口闪出来。常规启动(无参数)正常显示。 if CommandLine.arguments.contains("--autostart") { self.orderOut(nil) } } }