How to force the temporary fullscreen sidebar as overlay?

My app uses an NSSplitViewController with three vertical split-view items:

  1. A sidebar created using +[NSSplitViewItem sidebarWithViewController:]
  2. The main content
  3. An inspector-like pane

Through macOS Sequoia, it always had the following fullscreen sidebar behavior:

  • (The sidebar was collapsed.)
  • Moving the pointer to the left edge of the screen temporarily revealed it.
  • The sidebar appeared as an overlay.
  • The main content and inspector retained their existing frames.

After building with the Golden Gate SDK, the temporarily revealed sidebar no longer behaves as an overlay. Depending on minimumThickness and maximumThickness of the items, this either resizes the main content or shifts the complete remaining layout to the side. The resulting animation also stutters because the content is laid out for every intermediate width.

Explicitly toggling the sidebar using -[NSSplitViewController toggleSidebar:] is a different case and works correctly in my app. The problem specifically concerns only the automatic, temporary fullscreen reveal initiated by moving the pointer to the screen edge. I want that to remain as an overlay.

I have experimented with the split-view items’ holdingPriority, minimumThickness, maximumThickness, minimumThicknessForInlineSidebars and collapseBehavior, but have not found a way to restore the previous overlay behavior.

Any ideas how to do that? Thanks a lot!

To allow your split content to appear underneath the sidebar, set the automaticallyAdjustsSafeAreaInsets property to true.

Be sure to set this on the content that you want to extend under the sidebar and not on the sidebar itself. When this property is true, NSSplitView will extend that item's frame beneath the sidebar and then apply a safe area layout guide to help you position your content within the unobscured area.

How to force the temporary fullscreen sidebar as overlay?
 
 
Q