zzzzz zzzzz - 2 months ago 23
Objective-C Question

Prevent the user from manually scrolling NSScrollview?

I am using an NSScrollview to scroll programatically. I have hidden the horizental and vertical scrollers but the user is still able to scroll using the mouse wheel.I want to prevent thismanual scrolling.

This is how I am doing the automatic scrolling

- (IBAction)scrollToMidAnimated:(id)sender
{
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:2.0];
NSClipView* clipView = [self.scrollView contentView];
NSPoint newOrigin = [clipView bounds].origin;
newOrigin.y = [self.scrollView contentView].frame.size.height/2.0;
[[clipView animator] setBoundsOrigin:newOrigin];
[NSAnimationContext endGrouping];
}


It works perfectly but I want to prevent the user from manual scrolling(I only want to scroll programatically).Is there any way to do that?

Answer

Finally got the solution.I subclassed NSScrollView and overrided its method scrollwheel and left it empty.

- (void)scrollWheel:(NSEvent *)theEvent
{
    // Do nothing
}