😷

Flutter Desktop for Mac のアプリを常に手前に表示する。

2022/02/14に公開

NSWindowLevelを変更することで表示順序を変更できます。
https://developer.apple.com/documentation/appkit/nswindowlevel

プロジェクトの macos/Runner/MainFlutterWindows.swift にデフォルトの NSWindow があるので

        level = NSWindow.Level(rawValue: Int(2))

を追記してMainFlutterWindowのNSWindowLevelを2以上へ変更します。

全体像

import Cocoa
import FlutterMacOS

class MainFlutterWindow: NSWindow {
   override func awakeFromNib() {
       let flutterViewController = FlutterViewController()
       let windowFrame = frame
       contentViewController = flutterViewController
       setFrame(windowFrame, display: true)
       RegisterGeneratedPlugins(registry: flutterViewController)
       level = NSWindow.Level(rawValue: Int(2))
       super.awakeFromNib()
   }
}

サンプルコード
https://github.com/ioridev/always_on_top/tree/f0c0693ea75d92320218d884ccbcc463c016df50

Flutter関連のTipsをツイートしているので、よろしければTwitterのフォローお願いします。
https://twitter.com/iori_eth

Discussion