Mac NSView动画animationDidEnd在Retina MBP上调用了两次

时间:2012-07-25 06:58:26

标签: macos retina-display nsanimation

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

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

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

1 个答案:

答案 0 :(得分:0)

已解决:该问题根本与动画无关。它与使用不推荐使用的方法convertPointFromBase:

有关

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