2012-08-07 26 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