如何在Jetpack Compose Desktop中隐藏macOS Dock图标?
解决Compose桌面应用在macOS Dock显示图标的问题
你的代码在Windows下表现正常,但macOS Dock仍会显示图标,这是因为macOS默认会将关联AWT组件(比如系统托盘)的应用标记为UI应用,进而在Dock展示。可以通过以下两种方式解决:
方法1:修改macOS应用的Info.plist配置
在Gradle的compose.desktop配置中,给macOS分发添加LSUIElement键并设为true,这是macOS原生控制应用是否在Dock显示的配置:
compose.desktop { application { mainClass = "MainKt" // 替换成你的主类路径 nativeDistributions { macOS { infoPlist { extraKeysRawXml = """ <key>LSUIElement</key> <true/> """.trimIndent() } } } } }
方法2:添加JVM启动参数
通过指定JVM参数强制macOS将应用标记为非UI可见,可在Gradle中配置启动参数:
compose.desktop { application { mainClass = "MainKt" jvmArgs += "-Dapple.awt.UIElement=true" } }
两种方法都能实现隐藏Dock图标效果,推荐优先用方法1,因为这是macOS官方的应用配置方式,兼容性更稳定。
内容的提问来源于stack exchange,提问作者neuos
相关产品推荐
相关产品推荐

