Interfejs API trybu kiosku Mac - zapobieganie kończeniu przez użytkowników

Jestem w trakcie pisania aplikacji na Maca (10.6 / 10.7), która uwierzytelnia użytkowników w domenie Active Directory przed umożliwieniem im dostępu do komputera (mówię, że nie mogę pozwolić użytkownikom na logowanie się za pomocą tradycyjnych usług logowania) ). Mam kod uwierzytelniający, a teraz próbuję zrobić to okno logowania na pełnym ekranie i nie mogę go zamknąć.

Interfejs API trybu kiosku firmy Apple (dokumentacja tutaj) wygląda na to, że pasuje do tego, i użyłem go, aby przywołać okno na pełnym ekranie, wyłączyć pasek dokowania / menu / wymusić wyjście itd., wszystko działa dobrze. Problem, który mam, polega na tym, że nie mogę uniemożliwić użytkownikom korzystania z aplikacji CMD + Q.

Aplikacja trybu kiosku nie ma sensu, gdy użytkownik może po prostu wyjść z niego, więc zakładam, że czegoś mi brakuje. Poniżej znajduje się przykład tego, co robię:

NSApplicationPresentationOptions options = 
NSApplicationPresentationHideMenuBar|NSApplicationPresentationHideDock|
NSApplicationPresentationDisableHideApplication|
NSApplicationPresentationDisableProcessSwitching|
NSApplicationPresentationDisableAppleMenu| NSApplicationPresentationDisableForceQuit;

[NSApp setPresentationOptions:options];
[[_window contentView] enterFullScreenMode:[NSScreen mainScreen] withOptions:nil];

Wynik: pełne okno ekranu, brak paska menu, brak doku, nie można wymusić zamknięcia i nie można odrzucić CMD + Tab od ekranu. CMD + Q nadal zamyka aplikację.

questionAnswers(1)

yourAnswerToTheQuestion