2010-03-19 6 views
1

다른 관련없는 앱에 포커스를 유지하면서 내 앱의 창에 키보드 및/또는 마우스 이벤트 (예 : 사용자가 창 버튼을 클릭)를 수신하도록 할 수 있습니까?다른 응용 프로그램의 창에서 마우스 이벤트를 계속 수신하면서 다른 응용 프로그램의 창을 활성 상태로 유지합니까?

[myWindow setLevel : NSPopUpMenuWindowLevel]을 (를) 포함하여 다른 레벨에서 내 창을 구성하려고 시도했습니다.

답변

0

발견. 간단하면서도 애매합니다.

NSPanel을 사용하고 패널 스타일이 비 활성화 (NSNonactivatingPanelMask)인지 확인하거나 IB의 속성에서 동일한 옵션을 선택하십시오.

0

당신은 NSAppa preventWindowOrdering message를 전송하고 YES을 반환하여 귀하의 의견을 (적어도 마우스 클릭을 처리하는 사람이) acceptsFirstMouse: messages에 응답하여 창문 앞을 주문하지 않고 마우스 클릭을 처리 할 수 ​​있어야합니다.

앱을 스스로 정돈하지 않고 입력을 처리해서는 안됩니다. 표시되는 필드가 다른 윈도우에 의해 가려진 경우 사용자는 입력이 어디로 가고 있는지 알지 못할 수 있습니다.

+0

팁을 주셔서 감사합니다.하지만 여전히 내가 원하는 방식으로 작동하지는 않습니다. 내 윈도우 클래스의 경우 canBecomeKeyWindow (NO 반환), makeKeyWindow (아무 것도하지 않음), acceptsFirstResponder (NO 반환) 및 canBecomeMainWindow (아무 것도하지 않음)를 재정의했습니다. acceptsFirstMessage를 재정의하기 위해 내 NSButton 클래스를 제안한 것처럼 정의했습니다. 기본적으로 이전 응용 프로그램 (iTunes라고 가정 해 봅시다)이 해당 윈도우에서 활성 상태 인 동안 팝업을 표시하고 사용자가 해당 버튼을 클릭하게해야합니다 및 메뉴 모음 활성/포커스. – hishamk