Search results for

“column”

2,121 results found

Post

Replies

Boosts

Views

Activity

Reply to Requesting Network Extension Capability
@DTS Engineer This link is not working, do we have any sample service or documentation? So that we can refer to it for an implementation purpose. I'm not sure what's going on there. I know the link worked yesterday because that's how I found it, but I also watched it fail as I started writing your post... and now it appears to be working again. You can try the link above again or you can get to the same place by starting at the pir-service-example (note that this is the example project itself) page and clicking on Documentation in the right-hand column. The Anonymous Authentication article is the first article in the articles list on the left-hand side of the documentation page. I'm not sure if which of those links will work for you, but hopefully that's enough to get you to the right places. __ Kevin Elliott DTS Engineer, CoreOS/Hardware
1d
Reply to Push new views to sidebar when using NavigationPath
Hello @agorski, Thank you for your post. SwiftUI's NavigationSplitView is designed to catch and route links to content or detail. If using these columns don't work for you, create a sidebar that manages its own state: struct SidebarView: View { @State private var selected: ... Or use a different navigation design pattern that does not route links to detail. In my testing, I was able to get a TabView or the following code to code to work: enum Item: String, CaseIterable { case indigoView, tealView, orangeView, pinkView, greenView, purpleView, yellowView var color: Color { switch self { case .indigoView: .indigo case .tealView: .teal case .orangeView: .orange case .pinkView: .pink case .greenView: .green case .purpleView: .purple case .yellowView: .yellow } } } struct ContentView: View { var body: some View { NavigationSplitView { SidebarView() } detail: { ContentUnavailableView(Static Detail View, systemImage: paintpalette) } } } struct SidebarView: View { var body: some View { NavigationStack { List(
Topic: UI Frameworks SubTopic: SwiftUI
2d
Zoom transition source tile lags after back navigation when LazyVGrid is scrolled immediately
[Submitted as FB21961572] When navigating from a tile in a scrolling LazyVGrid to a child view using .navigationTransition(.zoom) and then returning, the source tile can lag behind the rest of the grid if scrolling starts immediately after returning. The lag becomes more pronounced as tile content gets more complex; in this simplified sample, it can seem subtle, but in production-style tiles (as used in both of my apps), it is clearly visible and noticeable. This may be related to another issue I recently filed: Source item disappears after swipe-back with .navigationTransition(.zoom) CONFIGURATION Platform: iOS Simulator and physical device Navigation APIs: matchedTransitionSource + navigationTransition(.zoom) Container: ScrollView + LazyVGrid Sample project: ZoomTransition (DisappearingTile).zip REPRO STEPS Create a new iOS project and replace ContentView with the code below. Run the app in sim or physical device Tap any tile in the scrolling grid to navigate to the child view. Return to the grid (back butt
Topic: UI Frameworks SubTopic: SwiftUI
6
0
459
2d
Reply to NSTableView: checking for mouse-driven selection changes on macOS 27
I don't think you're supposed to read clickedRow in -tableView:selectionIndexesForProposedSelection:. Unless something has changed in macOS 27 the documentation for clickedRow states: The value of this property is meaningful in the target object’s implementation of the action and double-action methods. NSTableView is a subclass of NSControl. You should be able to pick up a click change by setting the table view's target-action instead of trying to do it in the delegate methods. Doing it in the delegate method like that might work but IMO this is cleaner and probably safer: -(void)windowDidLoad { [super windowDidLoad]; self.tableView.target = self; self.tableView.action = @selector(tableViewAction:); } -(void)tableViewAction:(NSTableView*)sender { NSLog(@Clicked Column: %li Clicked row: %li, sender.clickedColumn, sender.clickedRow); } That will trigger on click. NSTableView does not invoke the action on keyboard navigation (at least not on macOS 26). I'm a bit worried that these AppKit changes might b
Topic: UI Frameworks SubTopic: AppKit Tags:
2d
How to display UISplitViewController columns next to each other again.
Since iOS26 the UISplitViewController is displayed in a way where the primary column (red) overlaps the secondary column (blue) instead of displaying them next to each other like before. Several Apple apps still display the columns next to each other, like Notes, Mail and Photos. What is the correct way to display the columns next to each other again using UIKit and if possible Storyboards.
Topic: UI Frameworks SubTopic: UIKit
5
0
114
4d
NavigationSplitView no longer pops back to the root view when selection = nil in iOS 26.4 (with a nested TabView)
In iOS 26.4 (iPhone, not iPad), when a NavigationSplitView is combined with a nested TabView, it no longer pops back to the root sidebar view when the List selection is set to nil. This has been working fine for at least a few years, but has just stopped working in iOS 26.4. Here's a minimal working example: import SwiftUI struct ContentView: View { @State var articles: [Article] = [Article(articleTitle: Dog), Article(articleTitle: Cat), Article(articleTitle: Mouse)] @State private var selectedArticle: Article? = nil var body: some View { NavigationSplitView { TabView { Tab { List(articles, selection: $selectedArticle) { article in Button { selectedArticle = article } label: { Text(article.title) } } } label: { Label(Explore, systemImage: binoculars) } } } detail: { Group { if let selectedArticle { Text(selectedArticle.title) } else { Text(No selected article) } } .navigationBarBackButtonHidden(true) .toolbar { ToolbarItem(placement: .topBarTrailing) { Button(Close, systemImage: xmark) { selectedArticle = nil
2
0
239
6d
Reply to Xcode 27: Bugs / Feedbacks
@DTS Engineer, I have filed some more bugs, please have a look, thanks! Xcode - Markdown Feedbacks: FB23145660 (Xcode crash - table deletion) FB23144227 (Table column copy) FB23144606 (Code formatting in same line) FB23144989 (Table column word wrap) FB23145786 (table column leading and trailing space) FB23145488 (Insert table) FB23145909 (Table cell right click) FB23146021 (Table width)
6d
Reply to Better alternative to WWDC's `withContinuousObservation` in View initializers for SwiftData?
WWDC sample code and code-alongs aren't meant to be architectural endorsements, just quick and easy ways to introduce new stuff in the shortest, most isolated way possible so you can see how the syntax works in a brief video. Your proposed workaround has a couple of key flaws and risks: It will silently fail during CloudKit Sync and database loads. When SwiftData pulls an item from the SQLite database into memory or when CK downloads a remote sync change, it will bypass computed properties entirely, and instead directly populate the underlying stored backing field (_title) using the internal BackingData engine. So if a user modifies an item's title on their iPad, CK will sync that change down to their iPhone. The iPhone will directly apply the update to _title and as a result, because the custom setter for title is completely bypassed updatedAt will never be updated. So now you're dealing with permanent data drift and desync across user devices. It also breaks the context transaction and undo engine. The tran
6d
Better alternative to WWDC's `withContinuousObservation` in View initializers for SwiftData?
Hi everyone, I was watching the Code-along: Add persistence with SwiftData session and noticed a strange architectural choice at the end. They track model side-effects directly inside a SwiftUI View's initializer like this: init(activity: Activity, isLast: Bool, isEditing: Bool) { activity.token = withContinuousObservation(options: .didSet) { event in // ... side effects here } } This feels like a significant architectural smell. SwiftUI views are transient structures with no guaranteed lifetime—they can be initialized dozens of times a second during standard layout passes. Furthermore, if multiple views display or interact with the same Activity, this tracking work gets duplicated redundantly. I understand this is a workaround because attaching a standard didSet directly to a stored property inside a @Model class doesn't trigger cleanly due to how the macro expands back-end storage. To keep this data-logic in the model layer where it belongs, I came up with an alternative that maps a custom computed property
1
0
98
6d
Reply to Inspector built-in navigation bar missed in iOS26
NavigationSplitView() { // Sidebar column SidebarView() .environmentObject(navState) .navigationTitle(LocalizedStringKey(Everycards)) .navigationBarTitleDisplayMode(.large) .toolbar { ToolbarItemGroup(placement: .navigationBarLeading) { AccountMenuView( openSettings: openSettings, sendEmail: { self.sendEmail(subject: $0) }, showProView: $showProView, showStatisticsView: $showStatisticsView ) if syncMonitor.isSyncing { ProgressView() .progressViewStyle(.circular) .tint(.secondary) } } ToolbarItemGroup(placement: .navigationBarTrailing) { OnboardingMenuView( showWelcome: { showWelcomeView = true }, showFlashTheoryView: $showFlashTheoryView, showQuizTheoryView: $showQuizTheoryView, showOnBdGestureStack: $showOnBdGestureStack, showOnBdWhereToStartView: $showOnBdWhereToStartView, showOnBdImportView: $showOnBdImportView, showOnBdHomeCollectionView: $showOnBdHomeCollectionView, showOnBdStylingView: $showOnBdStylingView, showOnBdLockingView: $showOnBdLockingView, showOnBdSlidesView: $showOnBdSlidesView, show
Topic: SwiftUI SubTopic:
SwiftUI Q&A
1w
Reply to UISplitViewController primary column differences in 27 vs 26
In iPadOS 27, sidebars are edge-to-edge. The sidebar adds a safe area inset to the adjacent column in the split view controller. To prevent content from being occluded by a sidebar, ensure that it is positioned within the safe area. For more information, check out Make your UIKit app more flexible from WWDC25.
Topic: UIKit SubTopic:
UIKit Q&A
1w
How to get an NSSegmentedControl in toolbar look like in the Finder?
Hey Team, In the Finder, the segmented control in the toolbar where the user can choose to display the files as icons, list, columns, or gallery, indicates its selection using a gray background. Is that done via custom drawing or is it a semantic option in AppKit? When I adopt Liquid Glass in my app by removing UIDesignRequiresCompatibility, my segmented control indicates the selections with a strong accent color. This could be distracting to my users and I'd like to duplicate the Finder behavior. Thanks, Ari
Topic: UI Frameworks SubTopic: AppKit
2
0
74
1w
Reply to Requesting Network Extension Capability
@DTS Engineer This link is not working, do we have any sample service or documentation? So that we can refer to it for an implementation purpose. I'm not sure what's going on there. I know the link worked yesterday because that's how I found it, but I also watched it fail as I started writing your post... and now it appears to be working again. You can try the link above again or you can get to the same place by starting at the pir-service-example (note that this is the example project itself) page and clicking on Documentation in the right-hand column. The Anonymous Authentication article is the first article in the articles list on the left-hand side of the documentation page. I'm not sure if which of those links will work for you, but hopefully that's enough to get you to the right places. __ Kevin Elliott DTS Engineer, CoreOS/Hardware
Replies
Boosts
Views
Activity
1d
Reply to Push new views to sidebar when using NavigationPath
Hello @agorski, Thank you for your post. SwiftUI's NavigationSplitView is designed to catch and route links to content or detail. If using these columns don't work for you, create a sidebar that manages its own state: struct SidebarView: View { @State private var selected: ... Or use a different navigation design pattern that does not route links to detail. In my testing, I was able to get a TabView or the following code to code to work: enum Item: String, CaseIterable { case indigoView, tealView, orangeView, pinkView, greenView, purpleView, yellowView var color: Color { switch self { case .indigoView: .indigo case .tealView: .teal case .orangeView: .orange case .pinkView: .pink case .greenView: .green case .purpleView: .purple case .yellowView: .yellow } } } struct ContentView: View { var body: some View { NavigationSplitView { SidebarView() } detail: { ContentUnavailableView(Static Detail View, systemImage: paintpalette) } } } struct SidebarView: View { var body: some View { NavigationStack { List(
Topic: UI Frameworks SubTopic: SwiftUI
Replies
Boosts
Views
Activity
2d
Zoom transition source tile lags after back navigation when LazyVGrid is scrolled immediately
[Submitted as FB21961572] When navigating from a tile in a scrolling LazyVGrid to a child view using .navigationTransition(.zoom) and then returning, the source tile can lag behind the rest of the grid if scrolling starts immediately after returning. The lag becomes more pronounced as tile content gets more complex; in this simplified sample, it can seem subtle, but in production-style tiles (as used in both of my apps), it is clearly visible and noticeable. This may be related to another issue I recently filed: Source item disappears after swipe-back with .navigationTransition(.zoom) CONFIGURATION Platform: iOS Simulator and physical device Navigation APIs: matchedTransitionSource + navigationTransition(.zoom) Container: ScrollView + LazyVGrid Sample project: ZoomTransition (DisappearingTile).zip REPRO STEPS Create a new iOS project and replace ContentView with the code below. Run the app in sim or physical device Tap any tile in the scrolling grid to navigate to the child view. Return to the grid (back butt
Topic: UI Frameworks SubTopic: SwiftUI
Replies
6
Boosts
0
Views
459
Activity
2d
Reply to NSTableView: checking for mouse-driven selection changes on macOS 27
I don't think you're supposed to read clickedRow in -tableView:selectionIndexesForProposedSelection:. Unless something has changed in macOS 27 the documentation for clickedRow states: The value of this property is meaningful in the target object’s implementation of the action and double-action methods. NSTableView is a subclass of NSControl. You should be able to pick up a click change by setting the table view's target-action instead of trying to do it in the delegate methods. Doing it in the delegate method like that might work but IMO this is cleaner and probably safer: -(void)windowDidLoad { [super windowDidLoad]; self.tableView.target = self; self.tableView.action = @selector(tableViewAction:); } -(void)tableViewAction:(NSTableView*)sender { NSLog(@Clicked Column: %li Clicked row: %li, sender.clickedColumn, sender.clickedRow); } That will trigger on click. NSTableView does not invoke the action on keyboard navigation (at least not on macOS 26). I'm a bit worried that these AppKit changes might b
Topic: UI Frameworks SubTopic: AppKit Tags:
Replies
Boosts
Views
Activity
2d
Reply to Push new views to sidebar when using NavigationPath
Speaking from memory: I believe there is a navigationSplitView initializer that lets you specify each of the three columns manually. Maybe try dropping NavigationStacks in each of those spots to have more navigation control over them? It’s still an odd navigation experience, though. You may need to make your own!
Topic: UI Frameworks SubTopic: SwiftUI
Replies
Boosts
Views
Activity
2d
How to display UISplitViewController columns next to each other again.
Since iOS26 the UISplitViewController is displayed in a way where the primary column (red) overlaps the secondary column (blue) instead of displaying them next to each other like before. Several Apple apps still display the columns next to each other, like Notes, Mail and Photos. What is the correct way to display the columns next to each other again using UIKit and if possible Storyboards.
Topic: UI Frameworks SubTopic: UIKit
Replies
5
Boosts
0
Views
114
Activity
4d
NavigationSplitView no longer pops back to the root view when selection = nil in iOS 26.4 (with a nested TabView)
In iOS 26.4 (iPhone, not iPad), when a NavigationSplitView is combined with a nested TabView, it no longer pops back to the root sidebar view when the List selection is set to nil. This has been working fine for at least a few years, but has just stopped working in iOS 26.4. Here's a minimal working example: import SwiftUI struct ContentView: View { @State var articles: [Article] = [Article(articleTitle: Dog), Article(articleTitle: Cat), Article(articleTitle: Mouse)] @State private var selectedArticle: Article? = nil var body: some View { NavigationSplitView { TabView { Tab { List(articles, selection: $selectedArticle) { article in Button { selectedArticle = article } label: { Text(article.title) } } } label: { Label(Explore, systemImage: binoculars) } } } detail: { Group { if let selectedArticle { Text(selectedArticle.title) } else { Text(No selected article) } } .navigationBarBackButtonHidden(true) .toolbar { ToolbarItem(placement: .topBarTrailing) { Button(Close, systemImage: xmark) { selectedArticle = nil
Replies
2
Boosts
0
Views
239
Activity
6d
Reply to Xcode 27: Bugs / Feedbacks
@DTS Engineer, I have filed some more bugs, please have a look, thanks! Xcode - Markdown Feedbacks: FB23145660 (Xcode crash - table deletion) FB23144227 (Table column copy) FB23144606 (Code formatting in same line) FB23144989 (Table column word wrap) FB23145786 (table column leading and trailing space) FB23145488 (Insert table) FB23145909 (Table cell right click) FB23146021 (Table width)
Replies
Boosts
Views
Activity
6d
Reply to Better alternative to WWDC's `withContinuousObservation` in View initializers for SwiftData?
WWDC sample code and code-alongs aren't meant to be architectural endorsements, just quick and easy ways to introduce new stuff in the shortest, most isolated way possible so you can see how the syntax works in a brief video. Your proposed workaround has a couple of key flaws and risks: It will silently fail during CloudKit Sync and database loads. When SwiftData pulls an item from the SQLite database into memory or when CK downloads a remote sync change, it will bypass computed properties entirely, and instead directly populate the underlying stored backing field (_title) using the internal BackingData engine. So if a user modifies an item's title on their iPad, CK will sync that change down to their iPhone. The iPhone will directly apply the update to _title and as a result, because the custom setter for title is completely bypassed updatedAt will never be updated. So now you're dealing with permanent data drift and desync across user devices. It also breaks the context transaction and undo engine. The tran
Replies
Boosts
Views
Activity
6d
Better alternative to WWDC's `withContinuousObservation` in View initializers for SwiftData?
Hi everyone, I was watching the Code-along: Add persistence with SwiftData session and noticed a strange architectural choice at the end. They track model side-effects directly inside a SwiftUI View's initializer like this: init(activity: Activity, isLast: Bool, isEditing: Bool) { activity.token = withContinuousObservation(options: .didSet) { event in // ... side effects here } } This feels like a significant architectural smell. SwiftUI views are transient structures with no guaranteed lifetime—they can be initialized dozens of times a second during standard layout passes. Furthermore, if multiple views display or interact with the same Activity, this tracking work gets duplicated redundantly. I understand this is a workaround because attaching a standard didSet directly to a stored property inside a @Model class doesn't trigger cleanly due to how the macro expands back-end storage. To keep this data-logic in the model layer where it belongs, I came up with an alternative that maps a custom computed property
Replies
1
Boosts
0
Views
98
Activity
6d
Inspector built-in navigation bar missed in iOS26
The inspector attached to the multi-column Split View, does not display its navigation elements on iOS 26. How to fix it?
Topic: UI Frameworks SubTopic: SwiftUI
Replies
5
Boosts
0
Views
77
Activity
1w
Reply to Inspector built-in navigation bar missed in iOS26
NavigationSplitView() { // Sidebar column SidebarView() .environmentObject(navState) .navigationTitle(LocalizedStringKey(Everycards)) .navigationBarTitleDisplayMode(.large) .toolbar { ToolbarItemGroup(placement: .navigationBarLeading) { AccountMenuView( openSettings: openSettings, sendEmail: { self.sendEmail(subject: $0) }, showProView: $showProView, showStatisticsView: $showStatisticsView ) if syncMonitor.isSyncing { ProgressView() .progressViewStyle(.circular) .tint(.secondary) } } ToolbarItemGroup(placement: .navigationBarTrailing) { OnboardingMenuView( showWelcome: { showWelcomeView = true }, showFlashTheoryView: $showFlashTheoryView, showQuizTheoryView: $showQuizTheoryView, showOnBdGestureStack: $showOnBdGestureStack, showOnBdWhereToStartView: $showOnBdWhereToStartView, showOnBdImportView: $showOnBdImportView, showOnBdHomeCollectionView: $showOnBdHomeCollectionView, showOnBdStylingView: $showOnBdStylingView, showOnBdLockingView: $showOnBdLockingView, showOnBdSlidesView: $showOnBdSlidesView, show
Topic: SwiftUI SubTopic:
SwiftUI Q&A
Replies
Boosts
Views
Activity
1w
Reply to UISplitViewController primary column differences in 27 vs 26
In iPadOS 27, sidebars are edge-to-edge. The sidebar adds a safe area inset to the adjacent column in the split view controller. To prevent content from being occluded by a sidebar, ensure that it is positioned within the safe area. For more information, check out Make your UIKit app more flexible from WWDC25.
Topic: UIKit SubTopic:
UIKit Q&A
Replies
Boosts
Views
Activity
1w
UISplitViewController primary column differences in 27 vs 26
The primary column sidebar in iPadOS 26 has a 10pt padding (not sure if we can access this value programmatically) which we hard-coded for edge inset calculations of the secondary view. It appears this padding is still present with the new design. Can we derive this property reliably somehow?
Topic: UI Frameworks SubTopic: UIKit
Replies
1
Boosts
0
Views
55
Activity
1w
How to get an NSSegmentedControl in toolbar look like in the Finder?
Hey Team, In the Finder, the segmented control in the toolbar where the user can choose to display the files as icons, list, columns, or gallery, indicates its selection using a gray background. Is that done via custom drawing or is it a semantic option in AppKit? When I adopt Liquid Glass in my app by removing UIDesignRequiresCompatibility, my segmented control indicates the selections with a strong accent color. This could be distracting to my users and I'd like to duplicate the Finder behavior. Thanks, Ari
Topic: UI Frameworks SubTopic: AppKit
Replies
2
Boosts
0
Views
74
Activity
1w