我有一个计时器,一旦闹钟响了,它就会重新启动。
alarm = NSTimer.scheduledTimerWithTimeInterval(
60 * minutesConstant + secondsConstant,
target:self,
selector: Selector("endSession"),
userInfo: nil,
repeats:false)
它的选择器函数设置一个模式标志,并调用原始函数,该函数使用新的分钟和秒常量设置闹钟,还向用户发送会话已重新启动的通知。
我有一个菜单项,它会根据剩余时间进行更新
所以我一直在打开它来检查我的闹钟是否真的重新启动了,并且一旦它达到零,通知就显示出来了。它工作正常,但是当我打开菜单,它下降到零,它只是停留在0:00,计时器不会触发,直到我点击菜单,在这一点上,它立即显示通知,并重置计时器像预期的那样。
当菜单打开时,我如何强制触发计时器?这不是什么大问题,但我不希望用户在看到计时器下降时,混淆了会话挂起。
2条答案
按热度按时间n1bvdmb61#
您只需将计时器添加到主运行循环中,如下所示:
雨燕4.2
雨燕3
斯威夫特2.x
vpfxa7rd2#
我遇到了同样的问题,但是在MacOS中使用NSOpenPanel。我的问题是用于TCP保持活动的计时器不会触发,如果面板打开太长时间,我会失去与设备的连接。我的应用程序会在我关闭面板后重新连接,但现在处于错误状态。只需添加上面推荐的代码就可以解决这个问题。