How to get the frame or insets of the new iPadOS 26 window control buttons (close, minimize, fullscreen)?

In iPadOS 26, Apple introduced macOS-style window control buttons (close, minimize, fullscreen) for iPad apps running in a floating window. I'm working on a custom toolbar (UIView) positioned near the top of the window, and I'd like to avoid overlapping with these new controls.

However, I haven't found any public API that exposes the frame, layout margins, or safe area insets related to this new UI region. I've checked the window's safeAreaInsets, additionalSafeAreaInsets, and UIWindowSceneDelegate APIs, but none of them seem to reflect the area occupied by these buttons.

Is there an officially supported way to:

  • Get the layout information (frame, insets, or margins) of the window control buttons on iPadOS 26?
  • Or, is there a system-defined guideline or padding value we should use to avoid overlapping this new UI?

Any clarification or guidance would be appreciated!

You should consider adopting standard controls like UIBarButtonItem. They work out the box and respect the system preferences.

Alternative you could take a look at UIWindowScene.Geometry to get the window scene’s geometry

I have the same question. WWDC Sessions and the HIG mention "moving your controls" when the window control appears. It's great that this happens automatically when using a standard NavigationStack and standard toolbar, however for apps that are unable to use standard UI elements, the documentation currently makes it sound like there is some way to get this sizing programmatically.

Filed FB18559686

Screenshot of the issue:

Sample code to make this happen:

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack(spacing: 0) {
            HStack {
                
                // Trying to make this button respect window controls safe area
                Button(action: { }, label: {
                    Image(systemName: "xmark")
                })
                .padding()
                .foregroundStyle(.primary)
                .glassEffect()
                
                
                Spacer()
            }
            .padding()
            .background(.fill.quaternary)
            Rectangle()
                .foregroundStyle(.fill.quinary)
        }
    }
}

#Preview {
    ContentView()
}
How to get the frame or insets of the new iPadOS 26 window control buttons (close, minimize, fullscreen)?
 
 
Q