gpt4 book ai didi

xcode - 在 Swift 中打开 NSMenu 时 NSTimer 不触发

转载 作者:IT王子 更新时间:2023-10-29 05:47:07 25 4
gpt4 key购买 nike

我有一个计时器,一旦闹钟响起,它就会运行以重新启动闹钟。

alarm = NSTimer.scheduledTimerWithTimeInterval(
60 * minutesConstant + secondsConstant,
target:self,
selector: Selector("endSession"),
userInfo: nil,
repeats:false)

它的选择器函数设置了一个模式标志,并调用了使用新的分钟和秒常量设置闹钟的原始函数,并且还发送了 session 已重新启动的用户通知。

我有一个随剩余时间更新的菜单项

enter image description here

所以我一直在打开它来检查我的闹钟是否确实重新启动,以及通知是否会在它达到零时显示。它可以工作,但是当我打开菜单并将其降至零时,它只会停留在 0:00 并且计时器不会触发,直到我单击菜单,此时它会立即显示通知并按预期重置计时器.

如何在菜单打开时强制计时器触发?这没什么大不了的,但我不希望用户对 session 感到困惑,如果他们看到计时器倒计时, session 就会挂起。

最佳答案

您只需将定时器添加到主运行循环中,如下所示:

swift 4.2

RunLoop.main.add(timer, forMode: .common)

swift 3

RunLoop.main.add(alarm, forMode: .commonModes)

swift 2.x

NSRunLoop.mainRunLoop().addTimer(alarm, forMode: NSRunLoopCommonModes)

关于xcode - 在 Swift 中打开 NSMenu 时 NSTimer 不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27997485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com