Xamarin.Mac:关闭的窗口未重新打开以单击 Dock 中的应用程序图标

Posted

技术标签:

【中文标题】Xamarin.Mac:关闭的窗口未重新打开以单击 Dock 中的应用程序图标【英文标题】:Xamarin.Mac: Closed window is not reopened to click app icon in the dock 【发布时间】:2021-07-12 02:50:53 【问题描述】:

我希望能够关闭所有窗口一次,然后单击 Dock 中的图标以重新打开窗口。

我找到了以下代码。

AppDelegate.cs
public override bool ApplicationShouldHandleReopen(NSApplication sender, bool hasVisibleWindows)

    if (hasVisibleWindows == false)
    
      var mainWindow = new MainWindowController();
      mainWindow.ShowWindow(this);
    
    return true;

但是,我在默认项目中找不到任何定义MainWindowController 的文件,如上面的代码所示。

我以为我应该使用ViewController,并且我尝试了一些方法,但它没有按预期工作。我该怎么办?

开发环境为 Visual Studio for Mac 版本。 8.9.6.

【问题讨论】:

【参考方案1】:

你可以试试这个代码,它可以工作:

 public override bool ApplicationShouldHandleReopen(NSApplication sender, bool hasVisibleWindows)
 
     if (!hasVisibleWindows)
     
         foreach (var window in sender.Windows)
             window.MakeKeyAndOrderFront(this);
     
     return true;
 

【讨论】:

【参考方案2】:

您也许应该尝试(如果这在 mac 上的 xamarin 中有效,但我在 winforms 中遇到同样的问题)创建新窗口,在您可以在该层次结构或解决方案资源管理器或任何新窗口中看到之后。然后创建新实例并显示它。

if (hasvisiblewindows == false)
        
            NewWindow newWindow == new NewWindow();
            NewWindow.ShowWindow(this);
        

我认为这应该对你有所帮助。

【讨论】:

以上是关于Xamarin.Mac:关闭的窗口未重新打开以单击 Dock 中的应用程序图标的主要内容,如果未能解决你的问题,请参考以下文章

EditPlus 设置关闭后不打开未关闭的文件,以及设置在同一个窗口打开多个文件

尝试通过单击打开它的 div 中断按钮外部来关闭弹出窗口

IE8怎么把已经允许弹出的窗口重新阻止该窗口弹出呢?

在 Electron 中单击按钮重新打开 BrowserWindow 后,对象已被销毁异常

在 Swift 中打开一个关闭的 NSWindow 会导致应用程序崩溃

强制关闭报文“打开此链接?”的弹出窗口]]