我有一个NSView(让我们称之为mainview),带有一些子视图。其中一个子视图具有基于时间(通过计时器调用)动画,该动画在其drawRect方法中完成。我还有一些CIFilter效果应用于主视图。
所有工作都按预期在10.6.x和10.7.x下工作(即我看到我的动画发生并应用过滤器)。
问题只出现在10.8以下 - 动画在我将过滤器(使用setContentFilters:和setWantsLayer :)应用到主视图后立即停止,并且只有在我删除过滤器后才会恢复(使用setContentFilters:nil)。当应用过滤器时,甚至不会调用我的子视图的drawRect方法...
如果有人能够了解情况,我真的很感激。
谢谢。答案 0 :(得分:0)
结果是setNeedsDisplay:不是线程安全的。我有一个setNeedsDisplay:调用我的子视图不在主线程上。调用我的主线程解决了这个问题。