Search code examples
objective-cmacoscocoacore-plotnsscrollview

NSScrollView with corePlot let NSScrollView to handle scrolling


I have an NSScrollView and some (dynamic) plots inside it I have made plots using corePlot frameworks .

When I want to scroll the NSScrollView while my mouse is not on 1 of the plots everything works fine , however when I scrolling and my mouse is pointed on 1 of the plots nothing happens . I assume it happens because corePlot eats the scrolling events.

I have set allowUserInteractions to NO , but it didn't solve the problem .

My question is : How can I "transfer"(don't know what word better suits here) the scrolling events from the plot to the NSScrollView ?


Solution

  • I solved the issue however not perfect solution but fast and reliable (cons: 1.eats ram 2.required library)

    I put RMBluredView on top of my NSScrolView on top of the graph plots and added the method in to RMBluredView to override the scrolling events and pass them to the super.

    - (void)scrollWheel:(NSEvent *)event 
    {
        [super scrollWheel:event];
        [[self nextResponder]scrollWheel:event];
    }
    

    Perhaps there is better solutions ,however I don't feel like spending whole day or even more inside the corePlot libraries and finding who eating my precious scrolling events ;)

    So if someone will stuck with the same problem I hope it will be useful :)