You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 7 MAUI MacCatalyst应用隐藏时如何隐藏Dock图标?

.NET 7 MAUI MacCatalyst:最小化/CMD+H时隐藏Dock图标

你之前使用的LSUIElement键是让应用以后台模式启动,全程不显示Dock图标,和你需要的「仅在隐藏/最小化时隐藏图标」需求不符,所以没效果。以下是符合需求的实现方式:

实现步骤

在MAUI项目的Platforms/MacCatalyst/AppDelegate.cs中,通过原生Mac API监听应用状态变化,动态切换Dock图标显示:

  1. 引入必要的命名空间:
using AppKit;
using Foundation;
  1. 添加通知监听或重写生命周期方法:
public partial class AppDelegate : MauiUIApplicationDelegate
{
    protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();

    public override bool FinishedLaunching(NSApplication application, NSDictionary launchOptions)
    {
        // 监听CMD+H隐藏应用事件
        NSNotificationCenter.DefaultCenter.AddObserver(NSApplication.WillHideNotification, _ =>
        {
            NSApplication.SharedApplication.SetActivationPolicy(NSApplicationActivationPolicy.Accessory);
        });

        // 监听应用恢复显示事件
        NSNotificationCenter.DefaultCenter.AddObserver(NSApplication.WillUnhideNotification, _ =>
        {
            NSApplication.SharedApplication.SetActivationPolicy(NSApplicationActivationPolicy.Regular);
        });

        // 监听窗口最小化事件
        NSNotificationCenter.DefaultCenter.AddObserver(NSWindow.WillMiniaturizeNotification, _ =>
        {
            NSApplication.SharedApplication.SetActivationPolicy(NSApplicationActivationPolicy.Accessory);
        });

        // 监听窗口取消最小化事件
        NSNotificationCenter.DefaultCenter.AddObserver(NSWindow.DidDeminiaturizeNotification, _ =>
        {
            NSApplication.SharedApplication.SetActivationPolicy(NSApplicationActivationPolicy.Regular);
        });

        return base.FinishedLaunching(application, launchOptions);
    }
}

关键说明

  • NSApplicationActivationPolicy.Accessory:将应用切换为辅助模式,此时Dock图标会隐藏,且应用不会出现在Cmd+Tab切换列表中,但应用仍在后台正常运行。
  • NSApplicationActivationPolicy.Regular:恢复应用的常规激活状态,Dock图标重新显示。
  • 测试时,使用CMD+H隐藏应用或点击窗口最小化按钮,Dock图标会立即消失;点击应用窗口(若仍在桌面)或通过其他方式唤起应用,图标会自动恢复。

内容的提问来源于stack exchange,提问作者trenderkyl13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 22:22:53