Mac OS X 10.9+ style scrollbars?

Does anyone have any suggestions (or example code) for implementing the new Mac OS X 10.9 and up “disappearing” style scrollbars on a standard Xojo canvas? In the screenshot below I’d like to extend the “group boxes” (visible in the lower left part of the window) all the way across, an additional 15px or so, to the edge of the live video - with the scrollbar displaying only when the user starts to scroll.

I suspect that it is more trouble than it’s worth, but I figured that I’d ask in the hopes that others have blazed this trail already.


-bill k

you can use NSScrollViewMBS class and place it there. Than place inside a NSImageVIewMBS to show your image or a NSCustomViewMBS to draw whatever you like.

It’s a lot of work.

Maybe piDog Scrolling Canvas is what you are looking for?

I made a scrollbar control to be used for listboxes, emulating the native OSX design and behavior.
Maybe you can adapt this to a canvas.

The only thing is not implemented is the “elastic” bouncing of the view.

I use Massimo’s control and I’m very happy with it.

Thanks Massimo and Carlo, I’ll take a look at that and if I’m able to modify it to work with a standard canvas I’ll send you the updates so that you can integrate it into the code. The piDog scrolling canvas control looks really cool, but I’m already doing most of what that control does now myself (zooming, scrolling, layers, etc.) , and don’t really want to rewrite everything. Would have been nice to know of that a couple of years ago :slight_smile:


Maybe you can fork the repo and after the changes do a merge request, so I can incorporate it into the main branch.

I’ve never done that before, but I’m willing to give it a try. Cheers.

If you need a native NSTableView (of course with the native scrollbars) you should check out the dtPlugins.
De latest version added the ability to create custom cells (within a ControlContainer) and link as a cell in the NSTableView.
This is something I was waiting for a very long time and finale it is possible in Xojo.