flutter desktop macosタスクバーをいじる

まとめ

window_managerを使おう

やりたかったこと

ウィンドウのタイトルバーを消したかったのでswift側を調べてAppDelegateで色々いじってた。ついでにタイトルバー周りのスタイルを色々いじれる内容を見たりなんだり。

タイトル消したい場合はこれ

mainFlutterWindow.titleVisibility = .hidden

閉じるボタンを消す

mainFlutterWindow.standardWindowButton(NSWindow.ButtonType.closeButton)!.isHidden = true

タイトルバーを隠す

mainFlutterWindow.titlebarAppearsTransparent = true
mainFlutterWindow.titleVisibility = .hidden
mainFlutterWindow.styleMask.insert(.fullSizeContentView)

window_manager

っていうので色々調べてたけどwindow_managerが色々対応進めてた。これ使うだけで良さそうですね。

github.com

フレームレスを使えばタスクバー隠せるし skiptaskbar使えばagentappにも出来るので以前の記事に書いてたinfo.plistの編集はもはや不要な気がする

homedogheavy.hatenablog.com

これはプラットフォーム側での対応が必要 macosの場合は info.plist に Application is agent (UIElement) = true にすればおけ

おわり

めちゃ開発が進んでてすごい。 これを投稿する頃には更に機能が増えてそう。