2012-10-15 5 views
0

나는 항상 실행해야하는 앱을 보유하고 있습니다 (사용자가 동의 할 경우).LSUIElement를 전경 애플리케이션으로 변환

사용자가 앱을 종료하면 포어 그라운드 앱을 LSUIElement로 변환합니다 (앱에는 메뉴 막대 아이콘 만 있고 도크 아이콘과 메뉴는 사라집니다).

괜찮 았던 메뉴 항목에 LSUIElement를 전경 앱으로 변환하는 옵션이 있습니다 (기능은 [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular][NSApp activateIgnoringOtherApps:YES]입니다).

사용자가 앱을 두 번 클릭하면 내 문제가 발생합니다. 위임 메서드 applicationWillUnhide:(NSNotification *)notification에서 [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]을 다시 사용하고 나타나지 않는 메뉴를 제외하고 모두 제대로 작동합니다. 다른 앱으로 이동하면 메뉴가 다시 나타납니다. 다른 방법을 시도했지만 좋은 것을 찾을 수 없었습니다. 내가하는 것입니다 applicationWillUnhide 함수에서 setActivationPolicy:를 사용하여 생각하기 때문에

내가 알고 싶은

는 응용 프로그램에서 사용자를 두 번 클릭이, 그 순간이라고 NSApplication의 기능 또는 무엇을 때 호출되는 위임 방법 늦은.

ProcessSerialNumber psn = { 0, kCurrentProcess }; 
TransformProcessType(&psn, kProcessTransformToForegroundApplication); 
+0

는'applicationShouldHandleReopen에서 호출 시도 유무 :' –

+0

예, 시도했지만 성공하지 못했습니다. – usain

+0

그리고 applicationDid 숨기기? –

답변

1

내가
ProcessSerialNumber psn = { 0, kCurrentProcess }; 
TransformProcessType(&psn, kProcessTransformToUIElementApplication); 

를 사용하여 포 그라운드로 다시 변경하는 LSUIElement에 일반 응용 프로그램을 변환하려면?
+3

'TransformProcessType'과'NSApp setActivationPolicy :'에서 알 수있는 것과 같은 효과가 있습니다. – usain

관련 문제