У меня есть приложение Xamarin.Forms
для iOS, Android,
, и теперь, я надеюсь, Ма c. Я сделал все настройки, чтобы пользовательский интерфейс выглядел великолепно на Ma c. Отправили его на утверждение, где оно было отклонено, поскольку пользователь может закрыть окно, пока приложение и строка меню еще работают. Поэтому я решил добавить всплывающее окно с запросом, хотят ли они выйти из приложения, когда пытаются закрыть окно. ОК = завершить приложение. Отмена = держать окно открытым. Я нахожу много статей о том, как справиться с этим с приложением Xamarin.Mac
, но ничего о том, как справиться с Xamarin.Forms
на ma c. FormsApplicationDelegate
не предоставляет доступ к контроллеру представления или делегату окна для переопределения метода WindowShouldClose. Я обнаружил, что могу использовать NSAlert
, чтобы сделать всплывающее окно, которое прекрасно работает. Теперь я не могу найти что-то, что делать, когда пользователь отвечает. Открыт для предложений.
private void Window_WillClose(object sender, System.EventArgs e)
{
NSNotification senderNotification = ((NSNotification)sender);
NSWindow closingWindow = (NSWindow)senderNotification.Object;
var confirmation = new NSAlert()
{
AlertStyle = NSAlertStyle.Warning,
InformativeText = "Are you sure you want to exit the App?",
MessageText = "Exit?"
};
confirmation.AddButton("OK");
confirmation.AddButton("Cancel");
var result = confirmation.RunModal();
if (result == 1001)
{
//Cancel closing the window
}
else
{
//terminate the app
}
}