我有一个简单的OSX菜单应用程序,状态项附有一个菜单,我有一个菜单项,可以手动将fire
发送到NSTimer。
我希望该菜单项显示下次启动计时器之前的秒数。有没有办法获得下一次火灾或下次解雇NSTimer的时间?
答案 0 :(得分:4)
NSTimer有fireDate,它返回一个NSDate。 NSDate有timeIntervalSinceNow。
答案 1 :(得分:2)
我知道已经有一个已接受的答案,但我刚刚想到你实际上可能根本不感兴趣fireDate
:
使用该日期,您只会看到相同的秒数,只要显示时间 - 如果它直接显示在菜单栏中,则没有进度指示......
我建议采用略有不同的方法:
简单:NSTimer
不是实时的事情。计时器触发的实际日期,其预定的fireDate
略有不同。但是,由于重复计时器重新安排而没有调整差异,这些偏差加起来。
这些偏差完全不可预测,因为它们不仅取决于应用程序的负载,还取决于整个系统。所以它们会在“完全可以忽略”和“ZOMFG”之间变化!