2008-12-26 57 views

回答

1

我已經polling with an NSTimeran OS X app做這個。我試着搜索分佈式通知,看看能否找到更好的方法來做到這一點,但我看不到任何有用的東西。

當應用程序爲launchedquit時,我確實收到通知。這至少有一點幫助。你可以看到這些註冊的地方我的controller wakes up

這個應用程序對我來說非常有幫助,甚至每秒輪詢一次幾乎不用CPU。但是,如果我能讓事件更加活躍,我會的。 :)

0

我不知道有一個'官方'/好方法來做到這一點,但一個棘手的方式去做這件事是聽任何分佈式的通知,並看到哪些總是被觸發時,最前端的應用程序更改,這樣你就可以聽一個:

您可以設置這樣的事情了:

def awakeFromNib(self): 
    NSDistributedNotificationCenter.defaultCenter().addObserver_selector_name_object_(
     self, 'someNotification:', None, None) 

def someNotification_(self, notification): 
    NSLog(notification.name()) 

你發現了一個通知時,應用程序切換總是觸發後,可以更換一次「無'在addObserver_etc_調用中使用該通知的名稱,並在'someNotification_'方法中檢查最前面的應用程序。

在我而言,我注意到,「AppleSelectedInputSourcesChangedNotification」解僱每次我打開的應用程序,所以我會聽的..

請記住,這可以打破任何時刻,你會prolly被檢查的在最前面的應用程序更改比往往更需要。

雖然..一定有更好的辦法..希望:)