Мне не известен «официальный» / хороший способ сделать это, но один хакерский способ сделать это - прослушать любые распределенные уведомления и посмотреть, какие из них всегда запускаются при изменении самого переднего приложения, так что вы может слушать это:
Вы можете установить что-то вроде этого:
def awakeFromNib(self):
NSDistributedNotificationCenter.defaultCenter().addObserver_selector_name_object_(
self, 'someNotification:', None, None)
def someNotification_(self, notification):
NSLog(notification.name())
После того, как вы обнаружили уведомление, которое всегда срабатывает при переключении приложений, вы можете заменить первый «None» в вызове addObserver_etc_ на имя этого уведомления и проверить самое переднее приложение в вашем методе «someNotification_».
В моем случае я заметил, что «AppleSelectedInputSourcesChangedNotification» срабатывает каждый раз, когда я переключаю приложения, поэтому я слушал это ..
Имейте в виду, что это может сломаться в любой момент, и вы будете проверять наличие изменений в самом переднем приложении чаще, чем нужно.
Должен быть лучший способ, хотя .. надеюсь:)