Post

Replies

Boosts

Views

Activity

Reply to UITabBarController, menu bar and first responder
I also recreated the issue in UISplitViewController. Either I am missing something fundamental or it's impossible to implement keyboard shortcuts in a good way in those scenarios. When making selections in a sidebar, its view controller becomes first responder and accepts shortcuts. When making the secondary view controller the first responder (either programmatically or by triggering something like a search bar), it can accept shortcuts but the sidebar cannot. You would also lose stuff like the sidebar selection color if you do this. Curiously I have not seen this behavior in other system apps. They can seemingly have the right behavior where both sidebar and the content view can react to their respective shortcuts at all times. Am I expected to implement all keyboard shortcuts on UISplitViewController?
Topic: UI Frameworks SubTopic: UIKit Tags:
Aug ’25
Reply to Replacing the Preferences item in a menu bar
Looks like this is something that works for now, unintended or not. Should that break in the future, I'll add my settings menu item alongside the system one. Thanks! UIMainMenuSystem.shared.setBuildConfiguration(config) { builder in var items: [UIMenuElement] = [] items.append( UIKeyCommand( title: String(localized: "Settings..."), image: UIImage(systemName: "gearshape"), action: #selector(MainTabBarController.showSettings), input: ",", modifierFlags: [.command] ) ) items.append( UIKeyCommand( title: String(localized: "Editor Settings..."), image: UIImage(systemName: "textformat"), action: #selector(MainTabBarController.showSettingsViewController), input: ",", modifierFlags: [.command, .alternate] ) ) items.append( UICommand( title: String(localized: "System Settings..."), image: UIImage(systemName: "gear"), action: #selector(MainTabBarController.showSettingsViewController2) ) ) let menu = UIMenu( title: "Gamery", identifier: .application, options: .displayInline, children: items ) builder.replace(menu: .application, with: menu) }
Topic: UI Frameworks SubTopic: UIKit Tags:
Jul ’25
Reply to UITabBarController ignores UITab view controllers when in UITabGroup
Thanks! So I was dumb, though the documentation could be a bit clearer on this. Why is this tab showing up even though it should only be in the sidebar? Happens on both phone and iPad in compact size classes, does not happen for the iPad top tab bar. collectionsTabGroup = UITabGroup(title: "Collections", image: nil, identifier: "collections", children: []) collectionsTabGroup.managingNavigationController = UINavigationController() collectionsTabGroup.preferredPlacement = .sidebarOnly
Topic: UI Frameworks SubTopic: UIKit
Jul ’25
Reply to Core Data, Swift 6, Concurrency and more
I have filed FB18216356 on the crash and FB18216198 for the warnings which are caused by having everything be on the MainActor because of the defaultIsolation settings, but the Core Data model creates a class gen without specifying nonisolated, which makes it impossible to modify a managed object from a background context?
Jun ’25
Reply to Stickers broken on iOS 18 / iPhone 16 after restoring from backup
For science I did a few more restores and I think I found the issue. iPhone 16 ships with a pre-final special build of iOS 18. During setup I restored my iPhone 15 backup onto the device. After setup I was greeted with a new iOS 18.0 update, which brings it up to the final, public build. I think the pre-release build broke the stickers database. When I tried to restore the iPhone 16 backup again (with the broken database) it obviously did not work. So I tried restoring the iPhone 15 iCloud backup (where the stickers still worked) to the now final iOS 18.0 update. And guess what, everything's fine and dandy. It appears the issue truly is that iOS 18.0 build the phone is shipping with. Why or how many people experience this issue, I don't know, but from what I gather from forums, it's quite a few.
Topic: Community SubTopic: Apple Developers Tags:
Sep ’24
Reply to Disable new tab bar look
I have taken the time to write a blog post about all the issues I see with this new tab/sidebar design. If you're interested feel free to take a look and file similar feedback so we can have a better system in the Fall! https://gamery.app/blog/about-the-new-tabs/
Topic: UI Frameworks SubTopic: General Tags:
Jun ’24
Reply to Disable new tab bar look
That's not possible as of now. I have filed a feedback for this: FB13840897 In my app I did adopt UISplitViewController to show a sidebar when the window is large enough or a tab bar in compact size classes. For that to work I had to do custom code to restore view hierarchies when switching size classes. Now, UITabBarController has this behavior for free, but I don’t want to adopt the new top tab bar in my app, because it breaks my layout and I just don’t like the look and feel of it. It would be great to have an option to hide the top tab bar, while keeping the sidebar visible and show the bottom tab bar when switching to compact size class.
Topic: UI Frameworks SubTopic: General Tags:
Jun ’24
Reply to UISearchTab with automaticallyActivatesSearch only works on second tap?
Filed as FB19432094
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Aug ’25
Reply to UITabBarController, menu bar and first responder
I also recreated the issue in UISplitViewController. Either I am missing something fundamental or it's impossible to implement keyboard shortcuts in a good way in those scenarios. When making selections in a sidebar, its view controller becomes first responder and accepts shortcuts. When making the secondary view controller the first responder (either programmatically or by triggering something like a search bar), it can accept shortcuts but the sidebar cannot. You would also lose stuff like the sidebar selection color if you do this. Curiously I have not seen this behavior in other system apps. They can seemingly have the right behavior where both sidebar and the content view can react to their respective shortcuts at all times. Am I expected to implement all keyboard shortcuts on UISplitViewController?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Aug ’25
Reply to UITabBarController, menu bar and first responder
Doing the same when in top tab bar mode works perfectly fine, it's just in sidebar mode where it does not.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Jul ’25
Reply to Replacing the Preferences item in a menu bar
Looks like this is something that works for now, unintended or not. Should that break in the future, I'll add my settings menu item alongside the system one. Thanks! UIMainMenuSystem.shared.setBuildConfiguration(config) { builder in var items: [UIMenuElement] = [] items.append( UIKeyCommand( title: String(localized: "Settings..."), image: UIImage(systemName: "gearshape"), action: #selector(MainTabBarController.showSettings), input: ",", modifierFlags: [.command] ) ) items.append( UIKeyCommand( title: String(localized: "Editor Settings..."), image: UIImage(systemName: "textformat"), action: #selector(MainTabBarController.showSettingsViewController), input: ",", modifierFlags: [.command, .alternate] ) ) items.append( UICommand( title: String(localized: "System Settings..."), image: UIImage(systemName: "gear"), action: #selector(MainTabBarController.showSettingsViewController2) ) ) let menu = UIMenu( title: "Gamery", identifier: .application, options: .displayInline, children: items ) builder.replace(menu: .application, with: menu) }
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Jul ’25
Reply to iPad menu bar and multiple windows
Thanks. That seems like a reasonable approach that I totally did not think about. I now let my root view controller handle this and it works perfectly fine.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Jul ’25
Reply to UITabBarController ignores UITab view controllers when in UITabGroup
Seems like UITabBarController.compactTabIdentifiers is the way to go to hide certain tabs. But how in the world can I have a UITabGroup "Collections" which collapses back into the "Library" tab when in compact size?
Topic: UI Frameworks SubTopic: UIKit
Replies
Boosts
Views
Activity
Jul ’25
Reply to UITabBarController ignores UITab view controllers when in UITabGroup
Thanks! So I was dumb, though the documentation could be a bit clearer on this. Why is this tab showing up even though it should only be in the sidebar? Happens on both phone and iPad in compact size classes, does not happen for the iPad top tab bar. collectionsTabGroup = UITabGroup(title: "Collections", image: nil, identifier: "collections", children: []) collectionsTabGroup.managingNavigationController = UINavigationController() collectionsTabGroup.preferredPlacement = .sidebarOnly
Topic: UI Frameworks SubTopic: UIKit
Replies
Boosts
Views
Activity
Jul ’25
Reply to Availability of corner and containerConcentric in iOS 26
Looks like the second beta does not have them yet either.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’25
Reply to Core Data, Swift 6, Concurrency and more
I have filed FB18216356 on the crash and FB18216198 for the warnings which are caused by having everything be on the MainActor because of the defaultIsolation settings, but the Core Data model creates a class gen without specifying nonisolated, which makes it impossible to modify a managed object from a background context?
Replies
Boosts
Views
Activity
Jun ’25
Reply to Core Data, Swift 6, Concurrency and more
UPDATE: The crash only happens when the option "Dynamic Actor Isolation" is enabled in Build Settings, Swift Compiler - Upcoming Features. I will read up on what this does and file a feedback if needed.
Replies
Boosts
Views
Activity
Jun ’25
Reply to Stickers broken on iOS 18 / iPhone 16 after restoring from backup
For science I did a few more restores and I think I found the issue. iPhone 16 ships with a pre-final special build of iOS 18. During setup I restored my iPhone 15 backup onto the device. After setup I was greeted with a new iOS 18.0 update, which brings it up to the final, public build. I think the pre-release build broke the stickers database. When I tried to restore the iPhone 16 backup again (with the broken database) it obviously did not work. So I tried restoring the iPhone 15 iCloud backup (where the stickers still worked) to the now final iOS 18.0 update. And guess what, everything's fine and dandy. It appears the issue truly is that iOS 18.0 build the phone is shipping with. Why or how many people experience this issue, I don't know, but from what I gather from forums, it's quite a few.
Topic: Community SubTopic: Apple Developers Tags:
Replies
Boosts
Views
Activity
Sep ’24
Reply to SwiftUI Navbar on VisionOS like the photos app?
let customNavBarAppearance = UINavigationBarAppearance() customNavBarAppearance.configureWithTransparentBackground() Using a transparent navigation bar should do the trick.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’24
Reply to Disable new tab bar look
I have taken the time to write a blog post about all the issues I see with this new tab/sidebar design. If you're interested feel free to take a look and file similar feedback so we can have a better system in the Fall! https://gamery.app/blog/about-the-new-tabs/
Topic: UI Frameworks SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jun ’24
Reply to Preview crashes consistency in Xcode 16 beta
Same issue here (FB13861460). A fresh project works just fine, so it appears to be something specific to how my project is set up. I can't read anything useful from the error log, though.
Replies
Boosts
Views
Activity
Jun ’24
Reply to Disable new tab bar look
That's not possible as of now. I have filed a feedback for this: FB13840897 In my app I did adopt UISplitViewController to show a sidebar when the window is large enough or a tab bar in compact size classes. For that to work I had to do custom code to restore view hierarchies when switching size classes. Now, UITabBarController has this behavior for free, but I don’t want to adopt the new top tab bar in my app, because it breaks my layout and I just don’t like the look and feel of it. It would be great to have an option to hide the top tab bar, while keeping the sidebar visible and show the bottom tab bar when switching to compact size class.
Topic: UI Frameworks SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jun ’24