버튼을 클릭 할 때 팝업 메뉴가 표시됩니다.NSMenu 블로킹 타이머/글로벌 이벤트 모니터/
메뉴 표시하려면 : (팝업 전에 호출)
[_menu popUpMenuPositioningItem:nil atLocation:point inView:nil];
내 타이머를 더 이상 메시지를 전송하는 것은 버튼을 클릭 한 후 문제는 해당 메뉴가 더 이상 작동 타이머 열려 있지 않은 경우이다 .
[NSTimer scheduledTimerWithTimeInterval:0.50
target:self
selector:@selector(myMethod:)
userInfo:nil
repeats:YES];
도 [NSEvent addGlobalMonitorForEventsMatchingMask ..] 심지어 CGEventTapCreate를 시도. 아무것도 부르지 않습니다.
팝업 차단/모달을 어떻게 만들 수 있습니까? 나는 이것이 가능하다는 것을 안다. 나는 다른 앱이 그것을하는 것을 보았다. 어떤 아이디어 주셔서 감사합니다.
NSEventTrackingRunLoopMode로 설정해야했지만 고맙습니다. 이상하게 생각하지만 NSEvent addGlobalMonitorForEventsMatchingMask :는 동일한 runloop에서 작동한다고 가정하기 때문에 작동하지 않습니다. – Wesley
우선, addGlobalMonitor ...는 다른 앱의 이벤트를 모니터링하는 데 사용됩니다. 타이머가 동일한 앱에서 실행되는 경우 어쨌든 그 메소드에 전달 될 것이라고는 생각하지 않습니다. addLocalMonitor ... : 메서드가 작동하지만 NSTimer의 내부 메커니즘이 확실하지 않습니다. addLocalMonitor에 대한 Apple 참조 문서 ... : "응용 프로그램을 통해 발송되는 이벤트 만 sendEvent : 메서드가 처리기로 전달됩니다"라고 명시되어 있습니다. NSTimer가 그 방법을 내부적으로 사용하는지 잘 모르겠습니다. 나는 알고 싶어 할 것입니다! – JiuJitsuCoder