2012-07-12 74 views
0

我以書面形式在Mac(10.6/10.7)的應用程序,允許他們進入計算機之前對其進行驗證針對Active Directory的域用戶的過程是(有人告訴我,我可以不允許用戶通過傳統登錄服務登錄)。我有認證代碼,並且正在嘗試使此登錄窗口成爲全屏並且無法關閉。的Mac Kiosk模式API - 強制退出應用程序崩潰

Apple的Kiosk Mode API(文檔在這裏)似乎非常適合這個,我用它來使窗口全屏,停用dock/menu bar /強制退出等,其中大部分工作正常。但是,我發現當我將窗口的視圖設置爲全屏模式時,嘗試啓動強制退出窗口會使應用程序(無論是桌面還是全屏,並需要完全重新啓動)崩潰。

代碼示例:

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

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

我能想到的唯一的事情是,期權的NSApplication並非完全被切換到全屏時保留;除禁用強制退出以外的每個選項似乎都會結束。任何建議感激!

回答

0

這實際上是在Mac上的全屏應用程序的正常行爲。當您在全屏應用中使用Cmd + Opt + Esc時,它將立即終止捕獲屏幕的進程,而不是呈現標準的終止界面。

+0

我想這是有道理的,但它是我的理解是,Kiosk模式API是專門設計,以防止用戶能夠終止應用程序。 – Blastfire 2012-07-12 14:29:31

+0

這是,但我相信你必須以特殊的權限運行。否則,任何應用程序可能會阻止用戶,直到他輸入了他的信用卡號碼或其他東西。嘗試以「root」身份運行應用程序 - 是否可以工作? – 2012-07-12 15:52:49

+0

Nah,沒有工作。我想我將退出使用NSView的enterFullScreenMode並改爲使用屏蔽屏幕,並使用NSApp選項禁用強制退出。謝謝,不過。 – Blastfire 2012-07-12 17:55:48