Explore the various UI frameworks available for building app interfaces. Discuss the use cases for different frameworks, share best practices, and get help with specific framework-related questions.

All subtopics
Posts under UI Frameworks topic

Post

Replies

Boosts

Views

Activity

Search in a bottom toolbar
Dear all, The Search fields documentation appears to make a distinction between putting a search in a tab bar and in a bottom toolbar in an iOS device. Putting a search in a tab bar in iOS26 appears to be quick and easy: Tab(role: .search) { // Search } I cannot find, however, a way on how to put a search bar in a bottom toolbar (as illustrated here). The following code puts it in the top toolbar: .searchable(text: $searchQuery, placement: .toolbar) Same as this one: .searchable(text: $searchQuery, placement: .toolbarPrincipal) Do I miss something in this regard? Thanks!
1
0
292
Jun ’25
Application crashes when using TextEditor(text, selection)
I have a TextEditor, to the constructor of which in addition to the text I pass an object of the TextSelection? type. I check on the Simulator with iOS 18.2. An attempt to clear the text leads to a crash with the message "Thread 1: Fatal error: String index is out of bounds" in Xcode. More about the error: libswiftCore.dylib`_swift_runtime_on_report: -> 0x194f32024 <+0>: ret More about the reproduction conditions: struct MyView: View { @Bindable private var viewModel = MyViewModel() @State var myTextSelection: TextSelection? = nil var body: some View { ZStack { // Some other code myEditor // Some other code } .toolbar { ToolbarItem(placement: .primaryAction) { Button { viewModel.clear() } label: { Label("Clear", systemImage: "eraser") } } } } var myEditor: some View { ZStack(alignment: .topLeading) { TextEditor(text: $viewModel.text, selection: $myTextSelection) .disableAutocorrection(true) .autocapitalization(.sentences) } // Some other code } } MyViewModel: @Observable final class MyViewModel: ObservableObject { var text: String = "" func clear() { text = "" } }
1
0
141
May ’25
iOS 26 Liquid Glass - How to achieve separate glass backgrounds for multiple leading toolbar items?
I'm updating my app for iOS 26's new Liquid Glass design and encountering unexpected behavior with toolbar items. I want to display multiple buttons on the leading side of the navigation bar, each with its own glass background (similar to how LandmarkDetailView shows separate glass backgrounds for its toolbar items). Current Behavior: When using .navigationBarLeading placement for multiple ToolbarItems, they all group under ONE glass background When using NO placement (like in Apple's LandmarkDetailView example), items get separate glass backgrounds but appear on the RIGHT side Using different leading placements (.topBarLeading vs .navigationBarLeading) still groups them together What I've Tried: swift// Attempt 1: All items with same placement - they group together .toolbar { ToolbarItem(placement: .navigationBarLeading) { Button(action: {}) { Image(systemName: "dollarsign.circle") } } ToolbarItem(placement: .navigationBarLeading) { Button(action: {}) { Image(systemName: "qrcode") } } } // Attempt 2: No placement - separate glass but wrong position .toolbar { ToolbarItem { Button(action: {}) { Image(systemName: "dollarsign.circle") } } ToolbarSpacer(.fixed) ToolbarItem { Button(action: {}) { Image(systemName: "qrcode") } } ToolbarSpacer(.flexible) } // Attempt 3: Different placements - still groups .toolbar { ToolbarItem(placement: .topBarLeading) { Button(action: {}) { Image(systemName: "dollarsign.circle") } } ToolbarItem(placement: .navigationBarLeading) { Button(action: {}) { Image(systemName: "qrcode") } } } Environment: Xcode 26 Beta iOS 26.0 Beta Using NavigationView (also tried NavigationStack) This is a root view (no back button) Questions: Is grouping of same-placement toolbar items the intended Liquid Glass behavior? How can I achieve separate glass backgrounds for multiple leading toolbar items? Why do items without placement appear on the right in a root view? Is there new API or guidance for toolbar layouts in iOS 26? I've studied the LandmarkDetailView example from Apple, but it uses no placement and relies on being a detail view with a back button. My use case is a root navigation view. Any guidance would be appreciated!
Topic: UI Frameworks SubTopic: SwiftUI
2
0
480
Jun ’25
openURL:options:completionHandler: Not Opening tel:// Link on iPad with Cellular Data
We are using openURL:options:completionHandler: to open a tel:// number in the dialer to place a call. This works on iPhones and WiFi-only iPads (tested with a iPad Mini 6th Gen), but it is failing to open on an iPad 8th Gen (WiFi + Cellular) running iPadOS 18.5 being used by a customer. Prior to updating the iPad to iPadOS 18, the call worked on iPadOS 15.2 and opened the call in FaceTime as expected. Despite not opening the dialer in iPadOS 18, the completionHandler returns the success parameter as true. canOpenUrl also returns true. We created a small test application that reproduces the issue using the code snippet below in a new application, with the tel schema added to the info.plist Queried URL Schemes. We are currently using Xcode 16.3. Test Steps: Create a new blank application and replace ContentView.swift with the code snippet below Run the test app on a physical iPad 8th Gen (WiFi + Cellular) Tap the "place a test call" button Expected Results: The user is prompted to call the number and is taken to FaceTime to attempt the call. The user may then receive an alert telling them an iPhone must be paired if not already. Alternatively: return success = false in the completionHandler. Actual Results: No action occurs that is visible to the user, and the completionHandler returns success = true. Separately, we should be able to have some method of checking if the device can actually complete a call, i.e. if an iPhone is paired, so that we can correctly show or hide a phone icon in the app based on if the user can place a call. canOpenUrl returns true even if there is not a device paired and the call cannot actually be placed, and there doesn't seem to be a proper method for making that check. Code Snippet: import SwiftUI struct ContentView: View { @State private var showAlert = false var body: some View { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundStyle(.tint) Text("Hello, world!") Button("Place a test call") { if let url = URL(string: "tel://5555554567") { UIApplication.shared.open(url) { success in if success { print("Call initiated successfully.") } else { showAlert = true } } } } } .padding() .alert("Call Failed", isPresented: $showAlert) { Button("OK") { showAlert = false } } message: { Text("The call could not be initiated.") } } } #Preview { ContentView() }
0
1
243
Jun ’25
macOS Sequoia/Xcode 16.2 - Catalyst App Missing Tab Bar
My Objective-C Catalyst app when built with Xcode 16.x/iOS 18 does not have a visible Tab Bar when run on Sequoia. App starts up in first tab, but there is no way to access other tabs. The same app when run on macOS Sonoma (or macOS Catalina) has a normal Tab Bar. The app has an initial View UITabBarController with 3 tabs. The main tab is a UiSplitViewController. Minimum macOS deployment 10.5. If app is built on Sonoma with Xcode 15.x/iOS 17 the Tab Bar is normal on macOS Sonoma, Sequoia, and Catalina. I've tried without success: if (@available(macCatalyst 18.0, *)) { self.tabBarController.tabBarHidden = false; } else { // Fallback on earlier versions } I wonder if this console log message has anything to do with the problem: CLIENT OF UIKIT REQUIRES UPDATE: This process does not adopt UIScene lifecycle. This will become an assert in a future version.
2
0
286
Jun ’25
Checking the contents of a TextField variable method not working
Hoping someone can help me with this… The error is… Generic parameter ‘/‘ cannot be inferred. .multilineTextAlignment(.center) .onAppear(perform: { var checkFirstCardLatitude = cards.firstCardLatitude let charArray = Array(checkFirstCardLatitude) let allowed: [Character] = ["-", ".", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] for char in charArray { if char != allowed { cards.firstCardLatitude = "000.000000" // Reset Text Field } } })
26
0
670
May ’25
App Name Display
For now, my app name length is more than 20 characters, so the iPhone app name displays without a space, and uses the range operator to ensure showing the rest in the next line. Is it possible to show space and name with 2 lines?
Topic: UI Frameworks SubTopic: General Tags:
0
0
95
May ’25
Widget Configuration Search with group headers...
I am working on a widget that allows the user to specify a list of items. Each item is an AppEntity and has an id, a type and a name. In the DisplayRepresentation I have and icon / image for each type. So when I tap on the specified items option a list of user specified items comes up with the option to search, select, deselect items. This works nicely. I sort them suggested entities by type then name so the list is predictable. How would like to be able to have a group / type header for each type of item. However, I don't know how to do that with the AppEntities. Help would be appreciated. I noticed that HomeKit takes a different approach. They have a list of items at the bottom labeled "Choose Scene Or Accessory". You can move the items up / down in the list, you can delete, and add items. When you tap "Add an item" in the list it goes to a search screen where the items are grouped by the room and have the individual items beneath them. I don't like that you have to select one item at a time but I love having the headings for the rooms. The question here is how did they do that? Is there sample code somewhere that does something similar.
1
0
147
Jun ’25
How to detect UIScreen changes in a UIView subclass?
I'm looking for a reliable way to detect when the UIScreen of a UIView changes. I'm developing a renderer SDK that provides a custom UIView subclass which performs OpenGL / Metal rendering, driven by a CADisplayLink. To support scenarios like screen mirroring or external displays on iPad, I need to ensure the CADisplayLink is created using the correct UIScreen, so the refresh rate is accurate. Ideally, I’d like a way to be notified in the view itself (without requiring scene delegate integration) whenever self.window.windowScene.screen changes, even if trait values remain the same. Any ideas or workarounds that work safely in production would be hugely appreciated! Since iOS 13, the architecture is: The app can have multiple UIScene instances (typically UIWindowScene). Each UIWindowScene can have multiple UIWindows. Each UIWindow hosts a view hierarchy. To determine the correct UIScreen, I access self.window.windowScene.screen. If any component in that key path changes (window, windowScene, or screen), I need to detect it and react. Here’s what I’ve tried so far: Overriding willMoveToWindow: and didMoveToWindow: This allows me to detect changes to window, but if windowScene (of the window) or screen (of the scene) changes directly, I get no notification. Overriding traitCollectionDidChange: This works if the screen change causes a difference in traits (e.g., a different displayScale), but fails if the old and new screens share the same traits (e.g., identical scale). Listening to UIScene-related notifications Notifications like UISceneDidDisconnectNotification or UISceneWillEnterForegroundNotification only indicate scene lifecycle events, not that a particular view or window has moved to a different screen. Using KVO to observe self.window.windowScene.screen I found WebKit does something similar, but in practice this causes crashes. The error message suggests that "windowScene" is not KVO-compliant, and my experience confirms it's not safe in production. Apple's official guidance uses UIWindowSceneDelegate In this example, Apple shows how to update a CADisplayLink in a UIWindowSceneDelegate's windowScene:didUpdateCoordinateSpace:interfaceOrientation:traitCollection:. However, as an SDK provider delivering just a UIView, I don't have control over the host app's UIWindowSceneDelegate.
Topic: UI Frameworks SubTopic: UIKit Tags:
2
0
185
May ’25
Enabling Show Tab Bar Programmatically
I have a macOS application developed in SwiftUI. It's a document-based application. I know how to hide the Show Tab Bar command under View. I don't want to hide it. I always want to show tabs. I wonder how to enable this command programmatically such that the document window always has the + button to the right. Thanks.
0
0
135
May ’25
Charts - Exclude dates on x-axis
Hi! I'm building an app that uses Swift Charts to visualize stock market data, and I'm encountering a couple of issues. The stock API I’m using provides data only for the trading days when the market is open. The problem is that I need to skip over the missing dates (non-trading days) in the chart, but still keep the x-axis formatted correctly (e.g., group ticks by month). If I convert the dates to String to handle missing data, I lose the correct x-axis formatting, and the date labels become inaccurate among with its data. Here’s som of the code I’m using for parsing the dates and structuring the data: struct StockDataPoint: Identifiable, Decodable { var id: String { datetime } let datetime: String let close: String var date: Date { datetime.toDate() ?? Date() } var closePrice: Double { Double(close) ?? 0.0 } } extension String { func toDate() -> Date? { let formatter = DateFormatter() formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(abbreviation: "UTC") formatter.dateFormat = self.count == 10 ? "yyyy-MM-dd" : "yyyy-MM-dd HH:mm:ss" return formatter.date(from: self) } } And: LineMark( x: .value("Datum", point.date), y: .value("Pris", point.closePrice) ) .interpolationMethod(.cardinal) .lineStyle(StrokeStyle(lineWidth: 0.7)) .foregroundStyle(.linearGradient(colors: [.blue, .yellow, .orange], startPoint: .bottomTrailing, endPoint: .topLeading)) .frame(height: 300) .background(Color.black.opacity(0.6)) .chartYScale( domain: ( (stockAPI.stockData.map { $0.closePrice }.min() ?? 0) * 0.98 ... (stockAPI.stockData.map { $0.closePrice }.max() ?? 100) * 1.02 ) ) .chartXAxis { AxisMarks(values: .automatic(desiredCount: 5)) { value in AxisGridLine().foregroundStyle(Color.gray.opacity(0.5)) AxisTick().foregroundStyle(Color.gray) AxisValueLabel().foregroundStyle(Color.gray) } } .chartYAxis { AxisMarks(values: .automatic(desiredCount: 5)) { value in AxisGridLine().foregroundStyle(Color.gray.opacity(0.5)) AxisTick().foregroundStyle(Color.gray) AxisValueLabel().foregroundStyle(Color.gray) } } What I need help with: Skipping missing dates on the x-axis and show correct data for corresponding days. Keeping the x-axis well formatted (grouped by month, accurate labels). Thanks in advance for any suggestions!
2
0
188
Jun ’25
Search in a bottom toolbar
Dear all, The Search fields documentation appears to make a distinction between putting a search in a tab bar and in a bottom toolbar in an iOS device. Putting a search in a tab bar in iOS26 appears to be quick and easy: Tab(role: .search) { // Search } I cannot find, however, a way on how to put a search bar in a bottom toolbar (as illustrated here). The following code puts it in the top toolbar: .searchable(text: $searchQuery, placement: .toolbar) Same as this one: .searchable(text: $searchQuery, placement: .toolbarPrincipal) Do I miss something in this regard? Thanks!
Replies
1
Boosts
0
Views
292
Activity
Jun ’25
Application crashes when using TextEditor(text, selection)
I have a TextEditor, to the constructor of which in addition to the text I pass an object of the TextSelection? type. I check on the Simulator with iOS 18.2. An attempt to clear the text leads to a crash with the message "Thread 1: Fatal error: String index is out of bounds" in Xcode. More about the error: libswiftCore.dylib`_swift_runtime_on_report: -> 0x194f32024 <+0>: ret More about the reproduction conditions: struct MyView: View { @Bindable private var viewModel = MyViewModel() @State var myTextSelection: TextSelection? = nil var body: some View { ZStack { // Some other code myEditor // Some other code } .toolbar { ToolbarItem(placement: .primaryAction) { Button { viewModel.clear() } label: { Label("Clear", systemImage: "eraser") } } } } var myEditor: some View { ZStack(alignment: .topLeading) { TextEditor(text: $viewModel.text, selection: $myTextSelection) .disableAutocorrection(true) .autocapitalization(.sentences) } // Some other code } } MyViewModel: @Observable final class MyViewModel: ObservableObject { var text: String = "" func clear() { text = "" } }
Replies
1
Boosts
0
Views
141
Activity
May ’25
iOS 26 Liquid Glass - How to achieve separate glass backgrounds for multiple leading toolbar items?
I'm updating my app for iOS 26's new Liquid Glass design and encountering unexpected behavior with toolbar items. I want to display multiple buttons on the leading side of the navigation bar, each with its own glass background (similar to how LandmarkDetailView shows separate glass backgrounds for its toolbar items). Current Behavior: When using .navigationBarLeading placement for multiple ToolbarItems, they all group under ONE glass background When using NO placement (like in Apple's LandmarkDetailView example), items get separate glass backgrounds but appear on the RIGHT side Using different leading placements (.topBarLeading vs .navigationBarLeading) still groups them together What I've Tried: swift// Attempt 1: All items with same placement - they group together .toolbar { ToolbarItem(placement: .navigationBarLeading) { Button(action: {}) { Image(systemName: "dollarsign.circle") } } ToolbarItem(placement: .navigationBarLeading) { Button(action: {}) { Image(systemName: "qrcode") } } } // Attempt 2: No placement - separate glass but wrong position .toolbar { ToolbarItem { Button(action: {}) { Image(systemName: "dollarsign.circle") } } ToolbarSpacer(.fixed) ToolbarItem { Button(action: {}) { Image(systemName: "qrcode") } } ToolbarSpacer(.flexible) } // Attempt 3: Different placements - still groups .toolbar { ToolbarItem(placement: .topBarLeading) { Button(action: {}) { Image(systemName: "dollarsign.circle") } } ToolbarItem(placement: .navigationBarLeading) { Button(action: {}) { Image(systemName: "qrcode") } } } Environment: Xcode 26 Beta iOS 26.0 Beta Using NavigationView (also tried NavigationStack) This is a root view (no back button) Questions: Is grouping of same-placement toolbar items the intended Liquid Glass behavior? How can I achieve separate glass backgrounds for multiple leading toolbar items? Why do items without placement appear on the right in a root view? Is there new API or guidance for toolbar layouts in iOS 26? I've studied the LandmarkDetailView example from Apple, but it uses no placement and relies on being a detail view with a back button. My use case is a root navigation view. Any guidance would be appreciated!
Topic: UI Frameworks SubTopic: SwiftUI
Replies
2
Boosts
0
Views
480
Activity
Jun ’25
openURL:options:completionHandler: Not Opening tel:// Link on iPad with Cellular Data
We are using openURL:options:completionHandler: to open a tel:// number in the dialer to place a call. This works on iPhones and WiFi-only iPads (tested with a iPad Mini 6th Gen), but it is failing to open on an iPad 8th Gen (WiFi + Cellular) running iPadOS 18.5 being used by a customer. Prior to updating the iPad to iPadOS 18, the call worked on iPadOS 15.2 and opened the call in FaceTime as expected. Despite not opening the dialer in iPadOS 18, the completionHandler returns the success parameter as true. canOpenUrl also returns true. We created a small test application that reproduces the issue using the code snippet below in a new application, with the tel schema added to the info.plist Queried URL Schemes. We are currently using Xcode 16.3. Test Steps: Create a new blank application and replace ContentView.swift with the code snippet below Run the test app on a physical iPad 8th Gen (WiFi + Cellular) Tap the "place a test call" button Expected Results: The user is prompted to call the number and is taken to FaceTime to attempt the call. The user may then receive an alert telling them an iPhone must be paired if not already. Alternatively: return success = false in the completionHandler. Actual Results: No action occurs that is visible to the user, and the completionHandler returns success = true. Separately, we should be able to have some method of checking if the device can actually complete a call, i.e. if an iPhone is paired, so that we can correctly show or hide a phone icon in the app based on if the user can place a call. canOpenUrl returns true even if there is not a device paired and the call cannot actually be placed, and there doesn't seem to be a proper method for making that check. Code Snippet: import SwiftUI struct ContentView: View { @State private var showAlert = false var body: some View { VStack { Image(systemName: "globe") .imageScale(.large) .foregroundStyle(.tint) Text("Hello, world!") Button("Place a test call") { if let url = URL(string: "tel://5555554567") { UIApplication.shared.open(url) { success in if success { print("Call initiated successfully.") } else { showAlert = true } } } } } .padding() .alert("Call Failed", isPresented: $showAlert) { Button("OK") { showAlert = false } } message: { Text("The call could not be initiated.") } } } #Preview { ContentView() }
Replies
0
Boosts
1
Views
243
Activity
Jun ’25
macOS Sequoia/Xcode 16.2 - Catalyst App Missing Tab Bar
My Objective-C Catalyst app when built with Xcode 16.x/iOS 18 does not have a visible Tab Bar when run on Sequoia. App starts up in first tab, but there is no way to access other tabs. The same app when run on macOS Sonoma (or macOS Catalina) has a normal Tab Bar. The app has an initial View UITabBarController with 3 tabs. The main tab is a UiSplitViewController. Minimum macOS deployment 10.5. If app is built on Sonoma with Xcode 15.x/iOS 17 the Tab Bar is normal on macOS Sonoma, Sequoia, and Catalina. I've tried without success: if (@available(macCatalyst 18.0, *)) { self.tabBarController.tabBarHidden = false; } else { // Fallback on earlier versions } I wonder if this console log message has anything to do with the problem: CLIENT OF UIKIT REQUIRES UPDATE: This process does not adopt UIScene lifecycle. This will become an assert in a future version.
Replies
2
Boosts
0
Views
286
Activity
Jun ’25
Checking the contents of a TextField variable method not working
Hoping someone can help me with this… The error is… Generic parameter ‘/‘ cannot be inferred. .multilineTextAlignment(.center) .onAppear(perform: { var checkFirstCardLatitude = cards.firstCardLatitude let charArray = Array(checkFirstCardLatitude) let allowed: [Character] = ["-", ".", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] for char in charArray { if char != allowed { cards.firstCardLatitude = "000.000000" // Reset Text Field } } })
Replies
26
Boosts
0
Views
670
Activity
May ’25
Status Bar Driving Orientation
With CarPlay, is it possible to programmatically know which side of the screen the status bar is placed on?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
2
Boosts
0
Views
260
Activity
Jun ’25
May I ask what the official term is for the top indicator that appears during background recording? I haven't been able to find it in the official documentation.
May I ask what the official term is for the top indicator that appears during background recording? I haven't been able to find it in the official documentation.
Topic: UI Frameworks SubTopic: General
Replies
1
Boosts
0
Views
82
Activity
May ’25
Highlight the model not with the eyes, but by clicking a button
Hello, we have a requirement where clicking a button will highlight the model, similar to the effect seen by the eyes. However, the eyes do not see it and it is achieved by clicking a button. What should we do? Thank you for your reply
Replies
0
Boosts
0
Views
144
Activity
Jun ’25
App Name Display
For now, my app name length is more than 20 characters, so the iPhone app name displays without a space, and uses the range operator to ensure showing the rest in the next line. Is it possible to show space and name with 2 lines?
Topic: UI Frameworks SubTopic: General Tags:
Replies
0
Boosts
0
Views
95
Activity
May ’25
Widget Configuration Search with group headers...
I am working on a widget that allows the user to specify a list of items. Each item is an AppEntity and has an id, a type and a name. In the DisplayRepresentation I have and icon / image for each type. So when I tap on the specified items option a list of user specified items comes up with the option to search, select, deselect items. This works nicely. I sort them suggested entities by type then name so the list is predictable. How would like to be able to have a group / type header for each type of item. However, I don't know how to do that with the AppEntities. Help would be appreciated. I noticed that HomeKit takes a different approach. They have a list of items at the bottom labeled "Choose Scene Or Accessory". You can move the items up / down in the list, you can delete, and add items. When you tap "Add an item" in the list it goes to a search screen where the items are grouped by the room and have the individual items beneath them. I don't like that you have to select one item at a time but I love having the headings for the rooms. The question here is how did they do that? Is there sample code somewhere that does something similar.
Replies
1
Boosts
0
Views
147
Activity
Jun ’25
How to detect UIScreen changes in a UIView subclass?
I'm looking for a reliable way to detect when the UIScreen of a UIView changes. I'm developing a renderer SDK that provides a custom UIView subclass which performs OpenGL / Metal rendering, driven by a CADisplayLink. To support scenarios like screen mirroring or external displays on iPad, I need to ensure the CADisplayLink is created using the correct UIScreen, so the refresh rate is accurate. Ideally, I’d like a way to be notified in the view itself (without requiring scene delegate integration) whenever self.window.windowScene.screen changes, even if trait values remain the same. Any ideas or workarounds that work safely in production would be hugely appreciated! Since iOS 13, the architecture is: The app can have multiple UIScene instances (typically UIWindowScene). Each UIWindowScene can have multiple UIWindows. Each UIWindow hosts a view hierarchy. To determine the correct UIScreen, I access self.window.windowScene.screen. If any component in that key path changes (window, windowScene, or screen), I need to detect it and react. Here’s what I’ve tried so far: Overriding willMoveToWindow: and didMoveToWindow: This allows me to detect changes to window, but if windowScene (of the window) or screen (of the scene) changes directly, I get no notification. Overriding traitCollectionDidChange: This works if the screen change causes a difference in traits (e.g., a different displayScale), but fails if the old and new screens share the same traits (e.g., identical scale). Listening to UIScene-related notifications Notifications like UISceneDidDisconnectNotification or UISceneWillEnterForegroundNotification only indicate scene lifecycle events, not that a particular view or window has moved to a different screen. Using KVO to observe self.window.windowScene.screen I found WebKit does something similar, but in practice this causes crashes. The error message suggests that "windowScene" is not KVO-compliant, and my experience confirms it's not safe in production. Apple's official guidance uses UIWindowSceneDelegate In this example, Apple shows how to update a CADisplayLink in a UIWindowSceneDelegate's windowScene:didUpdateCoordinateSpace:interfaceOrientation:traitCollection:. However, as an SDK provider delivering just a UIView, I don't have control over the host app's UIWindowSceneDelegate.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
2
Boosts
0
Views
185
Activity
May ’25
Advanced App Clip experience URL Status
Hello Team, We have Advanced App Clip Experiences live but we have add App Clip experience URL since long ago but status remains as Received and never changed to Published, can you please help us to fix this issue. Please see attached. Thanks
Replies
6
Boosts
0
Views
1.6k
Activity
Jun ’25
Can the macOS Quick Look preview plugin support network capabilities?
I developed a quick look preview plugin on MacOS, and want to add some data tracking to understand user usage. However, I'm encountering errors when using network capabilities within the plugin. I want to confirm whether the preview plugin blocks network capabilities.
Replies
0
Boosts
0
Views
85
Activity
May ’25
Grid right to left
Hi, I’d like to display items in a grid from right to left. Like the image: Is this possible with a grid? What would be the best approach in terms of performance?
Replies
1
Boosts
0
Views
100
Activity
Jun ’25
LPLinkView override context menu / LongPress
SwiftUI, using LPLinkView through UIViewRepresentable. Default behavior is a long press brings up a context menu and a popover to preview content. I want to replace that default long press behavior with my own custom screen. Adding a UILongPressGestureRecognizer didn't work. Thanks!
Replies
0
Boosts
0
Views
127
Activity
May ’25
Xcode26.0 beta has a compilation error
The swift syntax compilation reported an error. as follows How should I be compatible
Replies
2
Boosts
0
Views
130
Activity
Jun ’25
How to display such a window in a mixed space
I saw this demo on the website. Do you have the address for the demo? If not, how is the following image content implemented? Can you tell me which style of WindowGroup is used to create this custom window, and the buttons to move and close the window are located at the bottom of the menu bar. Thank you, thank [you]
Replies
1
Boosts
0
Views
143
Activity
Jun ’25
Enabling Show Tab Bar Programmatically
I have a macOS application developed in SwiftUI. It's a document-based application. I know how to hide the Show Tab Bar command under View. I don't want to hide it. I always want to show tabs. I wonder how to enable this command programmatically such that the document window always has the + button to the right. Thanks.
Replies
0
Boosts
0
Views
135
Activity
May ’25
Charts - Exclude dates on x-axis
Hi! I'm building an app that uses Swift Charts to visualize stock market data, and I'm encountering a couple of issues. The stock API I’m using provides data only for the trading days when the market is open. The problem is that I need to skip over the missing dates (non-trading days) in the chart, but still keep the x-axis formatted correctly (e.g., group ticks by month). If I convert the dates to String to handle missing data, I lose the correct x-axis formatting, and the date labels become inaccurate among with its data. Here’s som of the code I’m using for parsing the dates and structuring the data: struct StockDataPoint: Identifiable, Decodable { var id: String { datetime } let datetime: String let close: String var date: Date { datetime.toDate() ?? Date() } var closePrice: Double { Double(close) ?? 0.0 } } extension String { func toDate() -> Date? { let formatter = DateFormatter() formatter.locale = Locale(identifier: "en_US_POSIX") formatter.timeZone = TimeZone(abbreviation: "UTC") formatter.dateFormat = self.count == 10 ? "yyyy-MM-dd" : "yyyy-MM-dd HH:mm:ss" return formatter.date(from: self) } } And: LineMark( x: .value("Datum", point.date), y: .value("Pris", point.closePrice) ) .interpolationMethod(.cardinal) .lineStyle(StrokeStyle(lineWidth: 0.7)) .foregroundStyle(.linearGradient(colors: [.blue, .yellow, .orange], startPoint: .bottomTrailing, endPoint: .topLeading)) .frame(height: 300) .background(Color.black.opacity(0.6)) .chartYScale( domain: ( (stockAPI.stockData.map { $0.closePrice }.min() ?? 0) * 0.98 ... (stockAPI.stockData.map { $0.closePrice }.max() ?? 100) * 1.02 ) ) .chartXAxis { AxisMarks(values: .automatic(desiredCount: 5)) { value in AxisGridLine().foregroundStyle(Color.gray.opacity(0.5)) AxisTick().foregroundStyle(Color.gray) AxisValueLabel().foregroundStyle(Color.gray) } } .chartYAxis { AxisMarks(values: .automatic(desiredCount: 5)) { value in AxisGridLine().foregroundStyle(Color.gray.opacity(0.5)) AxisTick().foregroundStyle(Color.gray) AxisValueLabel().foregroundStyle(Color.gray) } } What I need help with: Skipping missing dates on the x-axis and show correct data for corresponding days. Keeping the x-axis well formatted (grouped by month, accurate labels). Thanks in advance for any suggestions!
Replies
2
Boosts
0
Views
188
Activity
Jun ’25