类似于我之前发布的这个问题:Handle a WPF Exit Event
我找到a solution in Objective C,但我不熟悉如何用Mono移植它。
修改
我发现我可以使用以下覆盖来做我想做的事情:
NSApplicationTerminateReply ApplicationShouldTerminate (NSApplication sender)
然而,如果我关闭我的MainWindow现在有一个问题,因为那是我想要开始调用应用程序退出的地方。我已经有ApplicationShouldTerminateAfterLastWindowClosed
的覆盖返回true,因此正确调用了终止覆盖。但当我返回取消时,应用程序正在运行,没有窗口。有没有办法拦截关闭窗口事件?
答案 0 :(得分:4)
这就是我最终要做的事情。我创建了一个名为MainWindowDelegate
的新类:
public class MainWindowDelegate : MonoMac.AppKit.NSWindowDelegate
{
public override WindowShouldClose (MonoMac.Foundation.NSObject sender)
{
return false;
}
}
然后,在我的MainWindowController
课程中:
public class MainWindowController
{
private MainWindowDelegate _delegate;
// Shared initialization code
void Initialize()
{
_delegate = new MainWindowDelegate();
}
public override void WindowDidLoad()
{
Window.Delegate = _delegate;
}
}