두 번째 최전방 앱을 결정하는 방법을 찾고 있습니다. 여기에 그 뜻이 있습니다.두 번째로 앞쪽에있는 앱?
Xcode, Interface Builder 및 내 응용 프로그램의 순서로 3 개의 응용 프로그램을 실행한다고 가정 해 봅니다. Command-Tab을 누르면 스위처에서 네 개의 응용 프로그램 (왼쪽에서 오른쪽으로), 응용 프로그램, Interface Builder, Xcode 및 Finder가 표시됩니다.
그럼 Finder로 전환한다고 해봅시다. 앱 스위처의 새로운 주문은 Finder, 내 애플리케이션, Interface Builder 및 Xcode입니다.
그런 다음 다시 내 응용 프로그램으로 전환하면 주문이 내 응용 프로그램, Finder, 인터페이스 작성기 및 Xcode입니다.
내가 호출 할 수있는 API를 찾고 있는데 인터페이스 빌더가 두 번째 최전방 앱이지만 그 인터페이스로 다시 전환하면 Finder가됩니다.
전혀 다른 경우 내 앱은 에이전트 응용 프로그램 (LSUIElement = YES)이므로 앱 전환기에 실제로 나타나지 않습니다.
이렇게 할 수있는 API가 있습니까? 내가 찾은 유일한 대안은 NSWorkspace에 따라 activeApplication이 무엇인지 계속 모니터링하는 타이머를 실행하는 것입니다. 이 기능은 시작하는 경우를 제외하고는 잘 작동합니다. 가능하다면 출시 할 때 가장 앞선 두 번째 응용 프로그램을 알고 싶습니다.
아이디어가 있으십니까?
나는 Dock이 지속적인 모니터링 방법을 사용하고 있다고 생각하지만, 이론적으로 Dock을 종료하고 그 결과로 주문이 뒤섞 이는지 확인할 수 있습니다. 독 (Dock)조차도 발사 순서를 결정할 수 없다면 적어도 시도하는 데 시간을 낭비하지 않아도됩니다. :) –