Thanks for your reply, Bill. I haven’t cracked this nut yet, but I’ve found some interesting things:
You’re right about using ‘frameOrigin’ and ‘frameSize’ although Apple’s Leopard release notes: http://developer.apple.com/releasenotes/Cocoa/AppKit.html lists ‘frame’ as a default animation parameter along with frameSize and frameOrigin.
Here’s the interesting stuff. If my controller calls: [[myView animationForKey:@”frameSize”] setDelegate:self]; in the awakeFromNib method, I get delegate callbacks for myView as expected, but I also get a callback for the other animations. For example, I have two subviews in a splitView, and I am animating the frames of both subviews. If I pass the bottomView in place of ‘myView’ in the snippet above, I also get delegate callbacks for the topView. Then I tried passing the splitView itself in place of ‘myView’, and I still got delegate callbacks for both subviews. I pushed the limit on this by passing the window’s contentView, a button not in the hierarchy of the splitView, and even a button residing on a different window - all attempts gave me delegate callbacks for both subviews. This seems odd to me since I don’t necessarily want to hear about every animation going on - just the one specified.
Looking to solve the fading tableview problem, I also tried using a tableview (inside a scrollview) not contained in a splitview. If I set frame width/height to zero, I don’t get the fade-out effect. Also tried changing the origin. Both animations were smooth. The fade-out only occurs when the tableview is inside a splitview. I tried setting the tableview’s ‘alphaValue’ animation to nil - didn’t work. I tried using my own CABasicAnimation for the framesize animation, but the tableview still fades out while the frame moves and fades back in once it’s complete. If I use a custom view instead of a tableview (it just fills the view with a color) then the fade-out doesn’t occur, so it doesn’t seem like the effect is forced by the splitview. (Side note: using CA on this custom view wasn’t a smooth animation - it flashed as it resized).
I tried the -setPosition:ofDividerAtIndex: but this isn’t a supported property. The divider jumps straight into place.
I’m running out of ideas on this one - has anyone solved this?