Завершение работы приложения в MonoMac - PullRequest
6 голосов
/ 21 октября 2011

Я пытаюсь закрыть приложение MonoMac с помощью Environment.Exit(0).Однако этот звонок по какой-то причине не возвращается.Это также не исключение.Когда я выполняю функцию в непосредственном окне в MonoDevelop, она отключается.

Я не знаю, как подойти к отладке этого.Я думал, что Environment.Exit убивает процесс ...

Ответы [ 2 ]

6 голосов
/ 21 октября 2011

Вместо этого следует использовать метод NSApplication.Terminate .

Обратите внимание, что этот метод может вызвать делегат приложения (если он определен) для подтверждения завершения (см. NSApplicationDelegate.ApplicationShouldTerminate ).

3 голосов
/ 07 ноября 2012

Вы можете добавить две функции переопределения в AppDelegate.cs.

public override NSApplicationTerminateReply ApplitionShouldTerminate(NSApplication sender) 
{
    mainWindowController.Window.Close();
    return NSApplicationTerminateReply.Now;
}

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