单击按钮时显示弹出菜单。问题是,当菜单打开时,计时器不再工作:
显示菜单的步骤:
[_menu popUpMenuPositioningItem:nil atLocation:point inView:nil];
单击按钮后,我的计时器(在弹出窗口之前调用)不再发送消息。
[NSTimer scheduledTimerWithTimeInterval:0.50
target:self
selector:@selector(myMethod:)
userInfo:nil
repeats:YES];
我也尝试过NSEvent addGlobalMonitorForEventsMatchingMask..甚至是CGEventTapCreate。什么都不会被调用。
如何使弹出窗口不被阻止/进入模式?我知道这是可能的,我已经看到另一个应用程序可以做到这一点。谢谢你的点子。
发布于 2013-03-05 21:03:40
问题可能是NSTimer未在正确的模式下运行。尝试通过创建一个NSRunLoop对象来获取当前的运行循环。然后使用addTimer:forMode:方法将计时器添加到NSModalPanelRunLoopMode中(在您刚刚创建的run循环对象中)。你可以在这里的苹果文档中了解更多信息:https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSRunLoop_Class/Reference/Reference.html
https://stackoverflow.com/questions/15233576
复制