private void animateView(NSView subView, RectangleF toFrame)
{
#if true
// Simple animation: assign the new value, and let CoreAnimation
// take it from here
((NSView) subView.Animator).Frame = toFrame;
#else
//
// Performing the animation by hand, every step of the way
//
var animationY = CABasicAnimation.FromKeyPath("position.y");
animationY.To = NSNumber.FromFloat(toFrame.Y);
animationY.AnimationStopped += delegate {
//Console.WriteLine("animation stopped");
subView.Layer.Frame = toFrame;
};
var animationX = CABasicAnimation.FromKeyPath("position.x");
animationX.To = NSNumber.FromFloat(toFrame.X);
animationY.AutoReverses = false;
animationX.AutoReverses = false;
animationY.RemovedOnCompletion = false;
animationX.RemovedOnCompletion = false;
animationY.FillMode = CAFillMode.Forwards;
animationX.FillMode = CAFillMode.Forwards;
subView.Layer.AddAnimation(animationX,"moveX");
subView.Layer.AddAnimation(animationY,"moveY");
#endif
}
}