import Cocoa import FlutterMacOS import window import LaunchAtLogin class MainFlutterWindow: NSWindow { override func awakeFromNib() { let flutterViewController = FlutterViewController() let windowFrame = self.frame self.contentViewController = flutterViewController self.setFrame(windowFrame, display: true) FlutterMethodChannel( name: "launch_at_startup", binaryMessenger: flutterViewController.engine.binaryMessenger ) .setMethodCallHandler { (_ call: FlutterMethodCall, result: @escaping FlutterResult) in switch call.method { case "launchAtStartupIsEnabled": result(LaunchAtLogin.isEnabled) case "launchAtStartupSetEnabled": if let arguments = call.arguments as? [String: Any] { LaunchAtLogin.isEnabled = arguments["setEnabledValue"] as! Bool } result(nil) default: result(FlutterMethodNotImplemented) } } RegisterGeneratedPlugins(registry: flutterViewController) super.awakeFromNib() } override public func order(_ place: NSWindow.OrderingMode, relativeTo otherWin: Int) { super.order(place, relativeTo: otherWin) hiddenWindowAtLaunch() } }