Mac 응용 프로그램의 Objective-C에서 지정된 단축키를 가로 채고 변경/무시하는 방법이 있습니까?키보드 단축키 (예 : CMD + q) 차단/비활성화
예를 들어 BetterTouchTool은 사용자가 제공하는 모든 바로 가기를 재정의 할 수 있습니다.
는 내가하고 싶은 것은 바로 가기를 '종료'방지 (즉 CMD + Q) 특정 응용 프로그램이 인스턴스에 바로 가기가 우발적으로 누르면 때문에 (열려 있고 어떤 사람들을 위해 바람직하지 않은 응용 프로그램을 닫습니다).
요약하면 글로벌 키 이벤트를 수신 한 다음 을 변경하기 전에이 해당 응용 프로그램에 전달 될 수 있습니까? 의 modifierFlags
및 keyCode
특성이있는 구문 분석 NSEvent에
static CGEventRef KeyDownCallback(CGEventTapProxy proxy,
CGEventType type,
CGEventRef event,
void *refcon)
{
/* Do something with the event */
NSEvent *e = [NSEvent eventWithCGEvent:event];
return event;
}
:
완전히 프로그래밍되지 않은 솔루션으로, 시스템 환경 설정> 키보드> 키보드 단축키> 응용 프로그램 바로 가기> [특정 응용 프로그램]에서 해당 응용 프로그램에 해당하는 키를 변경할 수 있습니다 (이것은 Mavericks에서 옮겼습니다. 여전히 시스템 환경 설정에 있어야합니다.) 예를 들어 브라우저의 Quit 메뉴 항목을^⌥⌘Q로 설정했습니다. 코딩 방식으로 CGEventTaps를 찾고 있습니다. –
응용 프로그램이 bash 스크립트를 사용하여 시작되고 * .app 응용 프로그램이 아니기 때문에 이는 작동하지 않습니다. CGEventTaps를 살펴 보겠습니다. 즉각적인 리소스가 있습니까? – ehftwelve
잡담. [Quartz Event Services 참고서] (https://developer.apple.com/library/mac/documentation/Carbon/Reference/QuartzEventServicesRef/Reference/reference.html)는 공식 문서입니다. –