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

Mac平台C#应用点击Dock无响应:窗口关闭后无法重启

Mac C#应用关闭窗口后Dock图标无响应问题解决办法

问题场景

使用Visual Studio for Mac + XCode Interface Builder开发Mac应用时,点击窗口左上角红色叉号关闭窗口后,应用仍停留在Dock中运行,但点击Dock图标无任何反应,必须彻底关闭重启才能恢复正常使用。

排查过程

  • 最初怀疑是Debug构建导致问题,切换到Release构建时遇到代码签名无效错误,了解到需要Apple开发者账号账号,完成签名后问题依旧存在。
  • 设备环境:Apple M1 Pro,Visual Studio for Mac 17.4.1,XCode 14.1

解决方案

方案1:关闭最后一个窗口后自动终止应用

在AppDelegate.cs中重写对应方法,实现关闭最后一个窗口时直接退出应用:

public override bool ApplicationShouldTerminateAfterLastWindowClosed(NSApplication sender)
{  
    return true;    
}

方案2:保留Dock运行状态,点击图标重新打开窗口

在AppDelegate.cs中重写对应方法,实现无可见窗口时点击Dock图标重新创建并显示主窗口:

public override bool ApplicationShouldHandleReopen(NSApplication sender, bool hasVisibleWindows)
{
    if (!hasVisibleWindows)
    {
        // 加载主故事板
        var sb = NSStoryboard.FromName("Main", null);
        // 通过Storyboard ID实例化窗口控制器,注意替换为你自己的窗口控制器ID
        var controller = sb.InstantiateControllerWithIdentifier("MainWindow") as NSWindowController;
        // 显示窗口并设为当前活跃窗口
        controller.Window.MakeKeyAndOrderFront(this);
    }
    return true;
}

注意:代码中的"MainWindow"需要替换为你在Main.storyboard的窗口控制器中设置的Storyboard ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:30:57