【问题标题】:Timer delayed by resizing window定时器因调整窗口大小而延迟
【发布时间】:2011-06-15 22:20:46
【问题描述】:

我有一个每 0.x 秒打勾的 NSTimer。我还有一个按钮,可以显示或隐藏控件,从而调整窗口大小。

但我注意到,单击按钮并调整窗口大小会显着延迟计时器,例如,如果我反复单击调整大小按钮,我的计时器会延迟几秒钟。

有人可以建议我如何解决这个问题吗?

【问题讨论】:

    标签: objective-c resize nstimer delay nswindow


    【解决方案1】:

    尝试将其添加到常见的运行循环模式:

    // alloc/init your timer here
    [[NSRunLoop currentRunLoop] addTimer:yourTimer forMode:NSRunLoopCommonModes];
    

    【讨论】:

    • 怀疑 NSEventTrackingRunLoopMode 事件是否会阻塞 NSRunLoopCommonModes 计时器。
    • NSEventTrackingRunLoopMode 不是常用模式吗?我忘记了。
    • 我想不是。我会修正我的答案。
    • 其实等一下:“对于Cocoa应用,这个集合默认包括default、modal和event tracking模式。”来自文档。
    • 如果您使用的是NSAnimation,您可以尝试将动画模式设置为NSAnimationBlocking,但这会让用户事件通过,这在调整大小期间可能是一个更大的问题……跨度>
    猜你喜欢
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多