这是我的情况,我有一个小应用程序可以跟踪你工作了多长时间,并让你知道什么时候该休息了。我有一个每秒触发一次并更新一些数字(剩余时间)的 NSTimer。该应用程序位于状态栏中,我希望剩余时间显示在状态菜单下拉菜单的菜单项中。现在我有更新到 NSMenuItem 并且它可以工作但是当你点击菜单栏中的图标进入菜单时,时间不会在你查看它时动态更新。如果您改变焦点然后返回菜单,时间会保持正确,但同样,当菜单打开时它不会更新。
即使在快速打开菜单的情况下,我仍然可以让 MenuItem 更新吗?还有其他几个具有 objective-c 解决方案的线程,但我无法快速调整它们。
最佳答案
您必须将定时器添加到 NSRunLoop。
NSRunLoop.currentRunLoop().addTimer(yourTimer, forMode: NSRunLoopCommonModes)
关于macos - 在菜单当前快速打开时从 NSTimer 动态更新 NSMenuItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27885181/