2013-04-08 14 views
6

Pracuję nad prostą aplikacją w kakao i chcę wykryć, czy jakaś aplikacja działa w trybie pełnoekranowym. czy to możliwe?Wykrywanie aplikacji pełnoekranowych na komputerze Mac

Dzięki funkcji API runningApplications można uzyskać różne informacje, ale nie ma konkretnej właściwości związanej z trybem pełnoekranowym. Czy ktoś wie, jak to wykryć? Czy jest w tym przypadku jakieś wydarzenie węglowe lub API?

+1

Podobny do http://stackoverflow.com/questions/7138194/mac-os-x-lion-detect-if-another-application-is-running-in-full-screen-mode?rq=1 – Jay

+0

@ Jay Dziękuję za wskazanie tych linków, mam jeszcze jedną kwerendę, jeśli jakaś aplikacja działa w trybie pełnoekranowym i czy jakakolwiek inna aplikacja umieszcza komunikat ostrzegawczy, co się dzieje? a także to, co dzieje się w OSD, jak wyświetlanie toastu przypominającego funkcję aktualizacji dostępną w Apple. Czy możesz mi pomóc znaleźć odpowiedzi na te pytania? –

+0

Hmm, możesz chcieć aktywować aplikację, aby alert był wyświetlany tak jak na http://stackoverflow.com/questions/5269116/make-a-nsalert-the-topmost-window?rq=1? – Jay

Odpowiedz

2

Anyways po wypróbowaniu tak wiele opcji i kopanie w NSWorkspace znalazłem sposób, dzięki któremu możemy osiągnąć to ich jest zgłoszenie

„NSWorkspaceActiveSpaceDidChangeNotification”

Jabłko doc mówi „Wysłany kiedy zmienić przestrzeniach wystąpił." dzięki temu możemy się zarejestrować. wraz z tym musimy użyć właściwości NSWindow "isOnActiveSpace", dzięki czemu możemy wykryć, kiedy aplikacja wchodzi w tryb pełnoekranowy i wychodzi z niego.

+0

Próbowałem dodać obserwatora do powiadomienia 'NSWorkspaceActiveSpaceDidChangeNotification'. Ale działa tylko w trybie debugowania. Czy w trybie zwolnienia jest jakieś ograniczenie systemowe? – Gon

+0

To jest dostępne od 10.6 i później .. raz sprawdzić krzyż raz .. inne nie jest żadnych zmian, ponieważ od razu powinno działać –

+0

Weird. Wkopię się w to. – Gon

3

Wpadłem na to na wiosnę i spędziłem na zawsze próbując zmusić go do działania. Skończyłem pakowanie mojego kodu do małego projektu GitHub, ale zupełnie zapomniałem go udostępnić tutaj.

https://github.com/shinypb/FullScreenDetector

Nadzieja ta jest przydatna dla kogoś.

2

Chcesz, aby wartość klucza wynosiła -[NSApplication currentSystemPresentationOptions]. Gdy aktywna aplikacja jest w trybie pełnoekranowym, ta właściwość będzie obejmować NSApplicationPresentationFullScreen.

Powiązane problemy