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
Reply to macOS 26 toolbar has wrong tint color sometimes in Dark Appearance
Sorry, I am not sure what happened with my original submission. There is now a file called MacToolbarIssue.zip attached the the submission that you can use to reproduce the issue. Just be sure to set your system appearance to Dark before building and running the app.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Sep ’25
Reply to macOS 26 toolbar has wrong tint color sometimes in Dark Appearance
Thank you Albert. Here is the FB Number FB20439311
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Sep ’25
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:
Replies
Boosts
Views
Activity
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
Replies
Boosts
Views
Activity
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:
Replies
Boosts
Views
Activity
Aug ’25
Reply to NavigationSplitView sidebar toggle button missing on iPadOS 26 beta 3
This has been fixed in iPadOS 26 beta 4.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jul ’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
Replies
Boosts
Views
Activity
Jul ’25
Reply to NavigationSplitView sidebar toggle button missing on iPadOS 26 beta 3
This does appear to be an iPadOS 26 beta 3 bug. I submitted a FB https://feedbackassistant.apple.com/feedback/18736250
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jul ’25
Reply to Why does the menu in my toolbar on iOS 26 "fly" to the top of the screen?
This was fixed for me with iOS 26 beta 2.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’25
Reply to Command compileSkybox failed with a nonzero exit code
I have the same issue. Removing my skybox is not an option for my app :(
Replies
Boosts
Views
Activity
Jun ’24
Reply to Detached navigation toolbar
See Steve Troughton-Smith's solution for this. He had to use UIKit to get this to work. https://mastodon.social/@stroughtonsmith/110878713390621034
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Dec ’23
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:
Replies
Boosts
Views
Activity
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.
Replies
Boosts
Views
Activity
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:
Replies
Boosts
Views
Activity
Aug ’23
Reply to Where can I find software developers for Vision Pros software?
I recommend looking at https://microconf.com/ for advice on how to hire, when to hire, what product to work on first, etc. The associated podcast (https://www.startupsfortherestofus.com) has a lot of podcast episodes talking about hiring an engineer if you are a non technical founder.
Topic: Graphics & Games SubTopic: General Tags:
Replies
Boosts
Views
Activity
Aug ’23