Hello all,

I'm rather stuck because of what seems to be a drawing bug of NSTableView that I am trying to work around.

It seems that any NSTableView in a NSVIew that has setWantsLayer:YES will flicker whenever the parent view is resized.

In order to work around that bug, I have my window controller written as follow :

-(void)switchToView:(NSView *)newView
{       [placeholderView setWantsLayer:YES];
        
        transition = [CATransition animation];
        [transition setType:kCATransitionPush];
        [transition setSubtype:kCATransitionFromLeft];
        [transition setDuration:0.5];
        [transition setDelegate:self];
        
NSDictionary *ani = [NSDictionary dictionaryWithObject:transition forKey:@"subviews"];
        [placeholderView setAnimations:ani];
                
        [...]
        [[placeholderView animator] addSubview:currentView];

}
This works fine, but the NSTable in currentview flickers. So, my window controller also does :

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
{
        NSLog(@"Animation Stopped !");
        if(flag==YES)
        {
                [placeholderView setWantsLayer:NO];

        }
}

Which also works fine. Once the setWantsLayer is NO, the NSTableFlickering stops.

BUT, the next time "switchToView" is called, no animation occur.
Animation DOES occur the next time, but not the time after that... you get my drift. It is as if the [placeholderView setWantsLayer:YES]; doesn't take effect right away...

Any idea why ?
Or better yet : any other idea to work around the NSTableView Bug ?

Thank you all luch in advance.

Erwan



_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to