4

컴퓨터에 대한 액세스를 허용하기 전에 Active Directory 도메인에 대해 사용자를 인증하는 Mac (10.6/10.7) 응용 프로그램을 작성하는 중입니다. 사용자가 전통적인 로그온 서비스를 통해 로그온 할 수 있도록 허용하지 않음). 나는 장소에 인증 코드를 가지고 있으며이 로그인 창을 전체 화면으로 만들고 닫을 수 없게하려고합니다.Mac 키오스크 모드 API - 사용자 종료 방지

애플의 키오스크 모드 API (documentation here)는이 기능에 매우 적합하다고 생각하며, 전체 화면을 가져 오거나 도크/메뉴 막대/강제 종료 등을 사용 중지했습니다. 내가 겪고있는 문제는 단순히 사용자가 응용 프로그램에서 CMD + Q'ing을 사용하지 못하게하는 것처럼 보일 수 없다는 것입니다.

사용자가 키오스크 모드 응용 프로그램을 종료 할 때 한계가 있으므로 아무 것도 누락되었다고 가정 할 필요가 없습니다.

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

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

결과 : : 아래는 내가 뭘하는지의 예입니다 전체 화면 창, 어떤 메뉴 표시 줄, 아니 독, 강제 종료하지 않고 수 없습니다 수 없습니다 멀리 화면에서 CMD + 탭. CMD + Q는 여전히 응용 프로그램을 종료합니다.

+0

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/doc/uid/TP40008592-CH1-SW4 – Eelke

+0

! 감사! – Blastfire

+0

트릭 @ 블래스트 파이어는 무엇을 했습니까? – Pavan

답변

4

나는 그가 한 것과 같은 해결책을 찾은 것 같지만 여기에 실제로 대답하지 않았기 때문에 자세히 설명해 줄 것이라고 생각했습니다.

- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender 

그리고 앱이 키오스크 모드에있을 때 여기에 NSTerminateCancel를 반환 : 당신이해야 할 일은

는 다음 NSApplicationDelegate 방법을 구현하는 것입니다. 속임수를 썼는지