2010-01-25 10 views
13

Chcę utworzyć skrót globalny dla mojej aplikacji. Użyłem "fajnego nowego sposobu" robienia tego za pomocą metody addGlobalMonitorForEventsMatchingMask. Problem polega na tym, że moje wydarzenia nie zostają "pochłonięte": mój skrót zawiera spację, więc za każdym razem, gdy używam skrótu, pojawia się Quicklook, gdy jestem w Finderze.Globalne skróty do kakao?

Jak mogę temu zapobiec? Wiem, że to możliwe, ponieważ robi to wiele aplikacji, na przykład aplikacja kontrolera iTunes firmy Bowtie.

Odpowiedz

10

addGlobalMonitorForEventsMatchingMask: nie jest odpowiednim zamiennikiem istniejącego API Carbon Hotkey API z różnych powodów; to jest okropnie nieefektywne. A z dokumentów:

... można obserwować tylko wydarzenie; nie można modyfikować ani w inny sposób uniemożliwić dostarczenia zdarzenia do pierwotnej docelowej aplikacji.

i

kluczowe związane zdarzenia mogą być monitorowane tylko jeśli dostępność jest włączona lub jeśli aplikacja jest zaufana dla dostępu dostępności

Skrót API jest nadal jedynym sposobem wdrożenia skrót globalny w systemie OS X. Jednak w przeciwieństwie do wielu Carbon API, interfejs API skrótów jest dostępny dla aplikacji 64-bitowych.

+0

Dzięki! Właśnie tego szukałem! – Alice

7

Użyj hotkey API, który jest przeznaczony do tego celu.

+0

Nie ma sposobu na kakao? – Alice

+0

To jest jedyny globalny API skrótu, o ile wiem. Możesz napisać metodę Objective-C, która opakowuje wywołania HIToolbox, jeśli nie chcesz przeglądać wywołań funkcji lub czegoś podobnego. – Chuck

+0

Tak, zamierzam to zrobić, a następnie ... – Alice