【问题标题】:Mac NSView animation animationDidEnd called twice on Retina MBPMac NSView 动画 animationDidEnd 在 Retina MBP 上调用了两次
【发布时间】:2012-07-25 06:58:26
【问题描述】:

最近在我的应用程序中出现了一个与新 MBP Retina 上的视图动画相关的错误。我没有要重现的新 MPB,但受影响的用户正在通过大量调试输出帮助追查问题。在我的动画委托上似乎两次调用了animationDidEnd,第二次似乎把事情搞砸了。该代码已经在 10.5-10.7.4 上运行了很长一段时间,到目前为止,这似乎与新的 MBP Retina 隔离。

我将视图本身用作动画代理,以防视图和动画代理之间的关系发生了变化,从而排除了这种可能性。我还在进一步调查 animationDidEnd 方法被两个不同的动画对象调用的可能性(尽管我没有任何迹象表明另一个动画正在应用程序的任何地方运行,更不用说这个委托了)。

如果有人知道与动画代表相关的文档有任何更新,我将不胜感激指针,或任何其他想法。谢谢。

【问题讨论】:

    标签: macos retina-display nsanimation


    【解决方案1】:

    已解决:问题根本与动画无关。它与使用已弃用的方法 convertPointFromBase 有关:

    虽然不推荐使用的方法至少在下一个版本中“通常”是可以的,但对于 Retina 显示器来说,这个方法很麻烦。这只是推测,但由于该方法在非 Retina 显示器上按预期工作,我不得不假设这与新显示器上的像素密度有关。

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多