2012-08-07 25 views
0

我有一個NSMenu,我想和項目更新通過pusherapp推到我的應用程序和使用libPusher client library好評。但事件似乎沒有收到NSEventTrackingRunLoopModelibPusher +更新開放NSMenu

考慮下面的代碼片段:

[channel bindToEventNamed:@"my_event" handleWithBlock:^(PTPusherEvent *event) { 
    NSLog(@"event received"); 
}]; 

,我等一推,發生在我維護菜單中打開,我希望立即對事件進行接收,但是當我關閉菜單我只能接受它。

我也試過將主隊列傳遞給bindToEventNamed:handleWithBlock:queue:(使用dispatch_get_main_queue();),無濟於事。

所以我在想我是否做錯事或有錯誤的libPusher?

+0

看一看,http://stackoverflow.com/questions/2808016/how-does-apple-update-the-airport-menu-while-it -is開 - 如何對變化nsmenu-W – adc 2012-08-07 15:27:22

+0

是啊,這就是我說的正是由「事件似乎並沒有在'NSEventTrackingRunLoopMode'要接收」 ...... – 2012-08-07 16:11:16

回答

0

我libPusher的作者。你看到這個問題的原因是因爲libPusher使用的底層WebSocket庫,SocketRocket只能在默認運行循環模式下工作。

好消息是,這已被固定在SocketRocket的最新HEAD。我已經測試過libPusher再次使用最新的SocketRocket,並且可以確認它修復了這個問題,我打算將這些更改發佈到下一個版本。

現在,我剛剛檢查了傑出的Github問題,並意識到你是這個bug的原始記者,所以你可能已經知道所有這些了,但我仍然會爲後人發佈這個答案。

+0

其實,我並張貼在錯誤報告github;) – 2012-10-30 19:01:11