Post

Replies

Boosts

Views

Activity

Reply to macOS 26 toolbar has wrong tint color sometimes in Dark Appearance
I am using Xcode Version 26.0 (17A321). Here is a minimal project that demonstrates this behavior. https://www.dropbox.com/scl/fi/97y801tdk4su6a419kar2/SwiftUIPlayground.zip?rlkey=5p1u5s0w9w9t5ytnilbdkgz00&st=ww6gnm6r&dl=0 Here is the code for this project, it just doesn't have the background images. struct ContentView: View { @State var showLightContent = false let sidebarContent = ["Item 1", "Item 2", "Item 3"] @State var selectedItem: String? = nil @State private var columnVisibility = NavigationSplitViewVisibility.detailOnly var body: some View { NavigationSplitView(columnVisibility: $columnVisibility) { // The sidebar List(sidebarContent, selection: $selectedItem) { item in Text(item) } } detail: { ZStack { Image(showLightContent ? "NaturalAtlas" : "MapBox") .resizable() .scaledToFill() .ignoresSafeArea() VStack { Spacer() HStack { Spacer() Button("Toggle Background") { withAnimation { showLightContent.toggle() } } .buttonStyle(.borderedProminent) Spacer() } Spacer() .frame(height: 20) } } .toolbar { ToolbarItemGroup(placement: .topBarTrailing) { HStack { Button { } label: { Image(systemName: "map") .font(.title2) } Button { } label: { Image(systemName: "magnifyingglass") .font(.title2) } } } } } .navigationBarTitle("") .navigationBarBackButtonHidden(true) } } In this test project if you click on the "Toggle Background" button you will see this behavior. Also, I found that the key to getting this to happen is having the "Mac Catalyst Interface" be set to "Optimize for Mac". When I change it to "Scaled to Match iPad" the toolbar gets the correct tinting. Is this something I should file in the Feedback Assistant?
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Sep ’25
Reply to How to avoid the traffic light buttons on iPad
I found that I could use the containerCornerInsets on the GeometryProxy to get this frame. (https://developer.apple.com/documentation/swiftui/geometryproxy/containercornerinsets) Here is my code where I added a red rectangle behind the controls. GeometryReader { geo in NavigationSplitView(columnVisibility: $sceneModel.columnVisibility) { GPSidebarView(appModels: self.appModels()) .sceneWidth(geo.size.width) } detail: { ZStack(alignment: .topLeading) { GPRootContentViewIOS26(appModels: self.appModels()) .cardStackVisible(sceneModel.hasCardOnMainStack) Rectangle() .fill(.red) .frame(width: geo.containerCornerInsets.topLeading.width, height: geo.containerCornerInsets.topLeading.height) .ignoresSafeArea() } } } When I added this with the red rectangle here is what I get for the red rectangle. Then when my iPad app goes full screen I get
Topic: UI Frameworks SubTopic: SwiftUI
Aug ’25
Reply to How to get the frame or insets of the new iPadOS 26 window control buttons (close, minimize, fullscreen)?
I found that I could use the containerCornerInsets on the GeometryProxy to get this frame. (https://developer.apple.com/documentation/swiftui/geometryproxy/containercornerinsets) Here is my code where I added a red rectangle behind the controls. GeometryReader { geo in NavigationSplitView(columnVisibility: $sceneModel.columnVisibility) { GPSidebarView(appModels: self.appModels()) .sceneWidth(geo.size.width) } detail: { ZStack(alignment: .topLeading) { GPRootContentViewIOS26(appModels: self.appModels()) .cardStackVisible(sceneModel.hasCardOnMainStack) Rectangle() .fill(.red) .frame(width: geo.containerCornerInsets.topLeading.width, height: geo.containerCornerInsets.topLeading.height) .ignoresSafeArea() } } } When I added this with the red rectangle here is what I get for the red rectangle. Then when my iPad app goes full screen I get
Topic: UI Frameworks SubTopic: UIKit Tags:
Aug ’25
Reply to Sheet-like presentation on the side on iPad
I have also been trying to build a side sheet like this and so far the only way I have found to do it is the same as you by placing a NavigationStack as an overlay with a glass effect background. But I have run into a problem with that. If I have a button with a menu, when the menu is presented, the glass background behind the NavigationStack disappears. This doesn't happen if I use a regular sheet.
Topic: UI Frameworks SubTopic: SwiftUI
Jul ’25
Reply to Add light to a RealityView on visionOS
I used this code that I got from https://blog.learnxr.io/xr-development/getting-started-with-apple-vision-os-development-part-2 extension Entity { /// Adds an image-based light that emulates sunlight. /// /// This method assumes that the project contains a folder called /// `Sunlight.skybox` that contains an image of a white dot on a black /// background. The position of the dot in the image dictates the direction /// from which the sunlight appears to originate. Use a small dot /// to maximize the point-like nature of the light source. /// /// Tune the intensity parameter to get the brightness that you need. /// Set the intensity to `nil` to remove the image-based light (IBL) /// from the entity. /// /// - Parameter intensity: The strength of the sunlight. Tune /// this value to get the brightness you want. Set a value of `nil` to /// remove the image based light from the entity. func setSunlight(intensity: Float?) { if let intensity { Task { guard let resource = try? await EnvironmentResource(named: "Sunlight") else { return } var iblComponent = ImageBasedLightComponent( source: .single(resource), intensityExponent: intensity) // Ensure that the light rotates with its entity. Omit this line // for a light that remains fixed relative to the surroundings. iblComponent.inheritsRotation = true components.set(iblComponent) components.set(ImageBasedLightReceiverComponent(imageBasedLight: self)) } } else { components.remove(ImageBasedLightComponent.self) components.remove(ImageBasedLightReceiverComponent.self) } } } For my sunlight I used this image that I put into Sunlight.skybox. That added light to my scene above.
Topic: Graphics & Games SubTopic: RealityKit Tags:
Nov ’23
Reply to building for xr_os simulator but the file (Libraries/libiphone-lib.a[5](MeshSkinningNEON64_blzfc.0) is built for xros.
I had similar issues when I build my project for the first time. You will need to rebuild all of your dependencies for visionOS and visionOS simulator. I was having issues building a universal binary for one of my dependencies. To get my app up and running, I swapped out the library file with the correct one based on what I was targeting. Once I had it working, I was able to go back and get the universal build for the library working.
Aug ’23
Reply to VisionOS Game Development
Depending on the type of game you are building, you will likely want to use SceneKit, SpriteKit, or RealityKit. SwiftUI is the future, so my recommendation is to start there. Though there are things it does not support and then you have to bridge over to UIKit in those cases.
Topic: UI Frameworks SubTopic: UIKit Tags:
Aug ’23