2013-10-28 8 views
0

저는 기본적으로 저를 제 정신이 아니게 만든 주제에 대한 답을 찾으려고합니다. Apple의 screencapture 유틸리티가 작동하는 것처럼 마우스 포인터를 캡처하는 방법이 있습니까? 내가하려는 일은 내 앱을 활성화시키지 않고 선창을 포함하여 모든 것을 오버레이하는 명확한 창을 그려야합니다. 필자가 본 유일한 소프트웨어는 command + shift + 4를 사용하여 screencapture입니다.코코아 - 화면 캡처 유틸리티처럼 마우스를 잡으십시오.

활성화되지 않은 NSPanel을 만들려고했지만 내 응용 프로그램이 활성화되어 있지 않으면 커서 rect와 함께 작동하지 않습니다. 또한 NSPanel의 문제점은 대시 보드에있는 경우 창을 활성화 할 수 없다는 것입니다.

내가하려는 일에 대한 요구 사항은 다음과 같습니다. 내 응용 프로그램은 활성화하지 않아야합니다 • 도 대시 보드

I에서 일 • 을 • 도크 숨기기/숨기기 해제를 트리거하지 않습니다 NSCursor • 마우스를 변경할 수 있어야합니다 (활성 어떤 활성 응용 프로그램을 계속) (또는 다른 이벤트) 이전에이 코드를 시도했지만 제한 사항은 위에 나열된 것과 동일합니다.

NSScreen * s = [NSScreen mainScreen]; 

[self.window setStyleMask:NSNonactivatingPanelMask]; 
[self.window setHasShadow:NO]; 
[self.window setOpaque:NO]; 
[self.window setBackgroundColor:[NSColor clearColor]]; 
[self.window setFrame:s.frame display:NO]; 
[self.window orderFront:self]; 
[self.window setLevel:NSMainMenuWindowLevel + 1]; 
[self.trackingView addCursorRect:self.window.frame cursor:[NSCursor closedHandCursor]]; 

답변

0

CGEventTap을 사용하고 응용 프로그램에 배포되기 전에 마우스 이벤트를 제어한다는 사실이 밝혀졌습니다. 불행히도 Sandboxed 앱을 사용하면 CGEventTap을 사용할 수 없습니다. 누구나 샌드 박스 기능을 사용할 수있는 방법이 있는지 알고 있습니까?