c# - 如何使用 C# 在 MonoMac 中打开一个窗口作为模态对话框?

标签 c# macos monomac

我正在使用 MonoMac (C#) 开发 Cocoa 应用程序。

我有一个类 MyWindowController 继承了 MonoMac.AppKit.NSWindowController,并像这样打开这个窗口的新实例:

MyWindowController mwc = new MyWindowController();
mwc.Window.MakeKeyAndOrderFront(this);

但是如何将它作为模态对话框打开呢?当对话框打开时,我的应用程序中的任何其他内容都必须执行,因此我不能使用窗口表(它只会阻止当前窗口)。而且我找不到任何其他似乎可以在我的 Controller 上做我想做的事情。在 Windows 上,我只需调用即可完成此操作:

mwc.ShowDialog();

所以我想要的是 MonoMac 等同于 ShowDialog(),我相信。

最佳答案

在发布问题之前,我花了将近三个小时来弄清楚这个问题,但当然,我在提问后立即找到了解决方案。

看起来我需要使用 NSApplication 对象:

NSApplication.SharedApplication.RunModalForWindow(ewc.Window);

关于c# - 如何使用 C# 在 MonoMac 中打开一个窗口作为模态对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15832376/

相关文章:

c# - Collection<T> 类及其用途

c# - EF Core 导航属性包含使用左连接而不是内连接

macos - 如何设置 .bash_profile,如果它还不存在。我想从 Mac 的命令行启动 sublime

python - py2app 生成包含我系统上所有库的 bundle

c# - 打开PDF文件中的特定页面c#

c# - Visual Studio 2008 - 运行时卡住,当我尝试调试时显示 "unable to break execution"

xcode - 如何以编程方式按下 NSMenuItem?

c# - 使用 MonoMac 实现 NSOutlineViewDataSource

.net - XCode/MonoMac 中的自定义控件等效项

c# - 如何访问原生 Objective C 属性?