Big Sur / Yosemite Best Practices for troubleshooting when not getting the proper sidebar look

IIRC, WWDC 2014 had a great session (no longer available among the 10 or so videos still left from 2014) about best practices that are relevant again for Big Sur for "automatically" getting the proper transparent sidebar look and for extending toolbars.

Is there any documentation (I could not find any) left on this topic, aside from the (sparse) info in this years "adopting macOS 11's new Look" video?

In particular, I'm having two issues I need guidance on:

1) even after converting to NSSplitViewController (was using plains NSSplitViews before), the proper Sidebar behavior for the left pane, etc, I'm, not getting the full height sidebar. What's best steps to investigate whats stopping this "magic:" from happening?

2) I have a small strip of controls underneath the toolbar (similar to Xcode's jumpbar, say). IIRC the Yosemite talk had information about how to "extend" the translucent toolbar behavior to such an area — but again, I cant find any official information on howe to do this, anymore.

It seems that the HIG only discusses high-level non-code design info, while the AppKit class documentation does not touch on these design considerations at all (in fact eg the NSplitViewController doc us severely lacking, literally just saying "its very complex". duh! Am I missing a third set of docs, aside from (disappearing old WWDC videos) that covers the intersection of these two?

Replies

Done: FB7814726
Hi dwarfland,

Some possible answers to your questions, in order:

1) The one remaining piece that you might be missing is the "Full Size Content View" flag on the containing window. You have to allow content to underlap / scroll beneath the titlebar region to be eligible for a full-height sidebar.

2) This sounds like a good use case for NSTitlebarAccessoryViewController. You can install an accessory view controller on a window using the addTitlebarAccessoryViewController method. A bottom bar accessory is automatically fit to the width of the content area (i.e. excluding the full-height sidebar) in Big Sur, and it fills the full width of the window on previous versions of macOS. And, as you remembered, accessories live inside the titlebar blur material, so there's no need to provide a separate background.

Thanks for the feedback about the documentation. While each of the individual pieces has a fairly complete class reference, I don't know of a guide or article that ties it all together, so I'll note that this is an area for potential improvement.
Post not yet marked as solved Up vote reply of .jsn Down vote reply of .jsn

1) The one remaining piece that you might be missing is the "Full Size Content View" flag on the containing window. You have to allow content to underlap / scroll beneath the titlebar region to be eligible for a full-height sidebar.

Thanx. I have tried that, but when I set this, I get no toolbar *or* titlebar anymore at all, oddly.

Also, what is strange, I randomly *sometimes* have my scrolling content from sidebar or main view peek thru the titlebar (not my custom bar below it, if course), as expected. But that only happens on rare occasions, and I can see not rhyme or reason to it. 99% of the time, my titlebar stays solid when I scroll the content beneath it.

2) This sounds like a good use case for NSTitlebarAccessoryViewController. You can install an accessory view controller on a window using the addTitlebarAccessoryViewController method. A bottom bar accessory is automatically fit to the width of the content area (i.e. excluding the full-height sidebar) in Big Sur, and it fills the full width of the window on previous versions of macOS. And, as you remembered, accessories live inside the titlebar blur material, so there's no need to provide a separate background.

Cool. I actually came across these in slides from 2015 that I found on Google, yesterday. But one thing I'm wondering: I have two separate controls that form the bar in the sidebar vs the one in the main content area (much like Xcode, again). How would I handle this with NSTitlebarAccessoryViewController so that one stays the width of the sidebar and one the width of the rest?

Would I just add the content one as NSTitlebarAccessoryViewController for Bug Sur, and leave the sidebar one as a child view of the sidebar itself? If so, how would I get it to adopt the seamless sidebar background?



A third related thing I noticed: on Catalina and earlier, i *do* get the translucent sidebar ok (also just "most" of the time; sometimes it come stop gray and only becomes translucent after I go fullscreen (and stays ok when I got back out of fullscreen). But on Big Sur, my sidebar now is consistently solid white...

thanx a lot form your help!