我有一些正在制作动画的NSView子类(更改帧和 alpha 值)。有时我需要停止动画,但是我不断收到错误
这是一个代码:
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:1.5f];
[textView.animator setFrame:frame];
[textView.animator setAlphaValue:0.0];
[NSAnimationContext endGrouping];
if ([textView.animator isAnimating]) { // Here the exception is raised
NSLog(@"%@ is animating!", textView);
}
我想打电话[textView.animator isAnimating]
,但这只是给了我
Exception detected while handling key input.
*** -[NSProxy doesNotRecognizeSelector:isAnimating] called!
带有代码的示例项目位于https://bitbucket.org/lukaszb/animationartifacts/src/0dc41660f26dd3b629c28bbbda6eb647
我可能会isAnimating
在我的子类中添加一些属性NSView
并在动画开始和完成处理程序中设置它,但是我想这也可能导致一些竞争条件问题。
谁能帮助我如何检测视图是否正在动画?