Same with tvOS actually. It's just not possible for third parties to create Liquid Glass icons on those two platforms. I asked two questions about this in the Q&A and both were dismissed.
In the case of tvOS, not even the system apps have been updated with this year's style updates. They look like tvOS 26.
I don't know what's going on. They had more than a year of time to get these two platforms ready for Icon Composer. I have an app that now has an icon that highly depends on Liquid Glass effects and I have the choice of either not bringing the app to those platforms or fake the effect, which would look bad.
Post
Replies
Boosts
Views
Activity
Filed as FB20992520.
Normally CKSyncEngine registers for remote notifications silently without hitting the callback. It just does so when running UIApplication.shared.registerForRemoteNotifications() at the same time which seems to be unwanted behavior.
Topic:
App & System Services
SubTopic:
Notifications
Tags:
We're days away from the final release and this API is still unusable.
Inside a sheet the corner radius is incorrect. Inside a view pushed in a NavigationStack there's no corner radius at all.
No replies here, no answer to filed feedback. Just broken. Am I supposed to ship like this?
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags:
The exports are for marketing purposes. You should not use the exported images as your app icon, but the .icon file itself you get by saving.
We're getting close to release and this is still a mess. It looks like SwiftUI randomly decides whether it gives you a top progressive blur or not. I have two Settings views. One gets it, one does not? Why? I don't know. It's just a settings page. Okay.
But then my game page does not get it either (which is the most important view in my app) and it looks so ugly and cluttered with text and the status bar.
I think this is it. I'm not going to ship this and use UIDesignRequiresCompatibility. This not the quality my users come to expect.
I am seriously tired of this. This beta cycle was the worst in a decade. I don't want the system to make these weird choices for me. Either do it, or don't, or give developers all the control over this they need if the system cannot do a proper job of resolving this.
Topic:
UI Frameworks
SubTopic:
General
Tags:
Yes, this is a system behavior. It tries to add a glass effect to existing icons even though it does not work with every icon.
You cannot customize this. When you compile with Xcode 26 you will lose this effect on your existing icon too as Apple assumes you do not want the glass effect. For all other cases, use Icon Composer.
Topic:
App & System Services
SubTopic:
General
Tags:
Yes, I did so a while back. FB19519914
I just updated the sample project with a strong reference to the observer, but that still does not work, but there's a console log now:
Unable to deliver Notification to Message observer because KeyboardWillShowMessage.makeMessage() returned nil. If this is unexpected, check or provide an implementation of makeMessage() which returns a non-nil value for this notification's payload.
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
This is still not working in beta 7. Am I holding the API wrong?
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
Additional problem:
Implementing validate(_ command: UICommand) is difficult. I can't put it where I do canPerformAction because if the first responder changes, then I'd have to manage it in the view controller. But if the sidebar becomes the first responder again, then I'd need to do it in my tab bar controller subclass. This is all so convoluted.
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
So, I'm now in the mood to try this again.
I think for any app it's reasonable that a UIViewController should be able to perform actions once it's visible, even if it's not first responder. Right now, this is not the case.
So what you're suggesting is that I do something like this. This really overcomplicates app logic when each UIViewController could perfectly handle their own actions, if only the system would ask each visible view controller if it can perform them.
Now I have to implement functions for each menu action at the top level, then check if the action should be enabled and then find the responsible view controller myself and tell it to execute the function. And this is just the basic implementation. What if I want to determine if a menu action should be enabled/disabled based on state in a specific view controller? Then I have to do this manually too. Also, all my view controllers functions need to be public then. I'm really not sure this is a thought-through approach.
@objc
func test() {
let gamesViewController = ...
gamesViewController.test()
}
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(test) {
if let a = self.selectedViewController as? UINavigationController {
if a.viewControllers.last is GamesViewController {
return true
}
}
}
return false
}
Even the Apple sample project "Adding Menus and Shortcuts to the Menu Bar and User Interface" struggles with this, as the two actions for the PrimaryViewController do not work unless you add an item and then select it to make it the first responder.
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
Filed as FB19646564.
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags:
List {
Text("Content")
}
.overlay(alignment: .bottom) {
content
}
.ignoresSafeArea(.all, edges: .bottom)
This is working, but also breaks the safe area of the List. I guess this is fine because I would disabled scrolling anyway.
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags:
Setting isActive does not seem to anything, at least not in the sidebar context. But it has pushed me in the right direction. This seems to work.
override func viewIsAppearing(_ animated: Bool) {
super.viewIsAppearing(animated)
searchController.searchBar.becomeFirstResponder()
}
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
I think it's detrimental to the new design to have a progressive blur at the top and none at the bottom. It just looks inconsistent. Betas 1-3 looked perfect in that regard. Filed as FB19389091.
Topic:
UI Frameworks
SubTopic:
General
Tags:
Filed as FB19519914
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
Same with tvOS actually. It's just not possible for third parties to create Liquid Glass icons on those two platforms. I asked two questions about this in the Q&A and both were dismissed.
In the case of tvOS, not even the system apps have been updated with this year's style updates. They look like tvOS 26.
I don't know what's going on. They had more than a year of time to get these two platforms ready for Icon Composer. I have an app that now has an icon that highly depends on Liquid Glass effects and I have the choice of either not bringing the app to those platforms or fake the effect, which would look bad.
- Replies
- Boosts
- Views
- Activity
Filed as FB20992520.
Normally CKSyncEngine registers for remote notifications silently without hitting the callback. It just does so when running UIApplication.shared.registerForRemoteNotifications() at the same time which seems to be unwanted behavior.
Topic:
App & System Services
SubTopic:
Notifications
Tags:
- Replies
- Boosts
- Views
- Activity
We're days away from the final release and this API is still unusable.
Inside a sheet the corner radius is incorrect. Inside a view pushed in a NavigationStack there's no corner radius at all.
No replies here, no answer to filed feedback. Just broken. Am I supposed to ship like this?
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags:
- Replies
- Boosts
- Views
- Activity
The exports are for marketing purposes. You should not use the exported images as your app icon, but the .icon file itself you get by saving.
- Replies
- Boosts
- Views
- Activity
We're getting close to release and this is still a mess. It looks like SwiftUI randomly decides whether it gives you a top progressive blur or not. I have two Settings views. One gets it, one does not? Why? I don't know. It's just a settings page. Okay.
But then my game page does not get it either (which is the most important view in my app) and it looks so ugly and cluttered with text and the status bar.
I think this is it. I'm not going to ship this and use UIDesignRequiresCompatibility. This not the quality my users come to expect.
I am seriously tired of this. This beta cycle was the worst in a decade. I don't want the system to make these weird choices for me. Either do it, or don't, or give developers all the control over this they need if the system cannot do a proper job of resolving this.
Topic:
UI Frameworks
SubTopic:
General
Tags:
- Replies
- Boosts
- Views
- Activity
Yes, this is a system behavior. It tries to add a glass effect to existing icons even though it does not work with every icon.
You cannot customize this. When you compile with Xcode 26 you will lose this effect on your existing icon too as Apple assumes you do not want the glass effect. For all other cases, use Icon Composer.
Topic:
App & System Services
SubTopic:
General
Tags:
- Replies
- Boosts
- Views
- Activity
Yes, I did so a while back. FB19519914
I just updated the sample project with a strong reference to the observer, but that still does not work, but there's a console log now:
Unable to deliver Notification to Message observer because KeyboardWillShowMessage.makeMessage() returned nil. If this is unexpected, check or provide an implementation of makeMessage() which returns a non-nil value for this notification's payload.
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
- Replies
- Boosts
- Views
- Activity
This is still not working in beta 7. Am I holding the API wrong?
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
- Replies
- Boosts
- Views
- Activity
Additional problem:
Implementing validate(_ command: UICommand) is difficult. I can't put it where I do canPerformAction because if the first responder changes, then I'd have to manage it in the view controller. But if the sidebar becomes the first responder again, then I'd need to do it in my tab bar controller subclass. This is all so convoluted.
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
- Replies
- Boosts
- Views
- Activity
So, I'm now in the mood to try this again.
I think for any app it's reasonable that a UIViewController should be able to perform actions once it's visible, even if it's not first responder. Right now, this is not the case.
So what you're suggesting is that I do something like this. This really overcomplicates app logic when each UIViewController could perfectly handle their own actions, if only the system would ask each visible view controller if it can perform them.
Now I have to implement functions for each menu action at the top level, then check if the action should be enabled and then find the responsible view controller myself and tell it to execute the function. And this is just the basic implementation. What if I want to determine if a menu action should be enabled/disabled based on state in a specific view controller? Then I have to do this manually too. Also, all my view controllers functions need to be public then. I'm really not sure this is a thought-through approach.
@objc
func test() {
let gamesViewController = ...
gamesViewController.test()
}
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(test) {
if let a = self.selectedViewController as? UINavigationController {
if a.viewControllers.last is GamesViewController {
return true
}
}
}
return false
}
Even the Apple sample project "Adding Menus and Shortcuts to the Menu Bar and User Interface" struggles with this, as the two actions for the PrimaryViewController do not work unless you add an item and then select it to make it the first responder.
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
- Replies
- Boosts
- Views
- Activity
Filed as FB19646564.
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags:
- Replies
- Boosts
- Views
- Activity
List {
Text("Content")
}
.overlay(alignment: .bottom) {
content
}
.ignoresSafeArea(.all, edges: .bottom)
This is working, but also breaks the safe area of the List. I guess this is fine because I would disabled scrolling anyway.
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags:
- Replies
- Boosts
- Views
- Activity
Setting isActive does not seem to anything, at least not in the sidebar context. But it has pushed me in the right direction. This seems to work.
override func viewIsAppearing(_ animated: Bool) {
super.viewIsAppearing(animated)
searchController.searchBar.becomeFirstResponder()
}
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
- Replies
- Boosts
- Views
- Activity
I think it's detrimental to the new design to have a progressive blur at the top and none at the bottom. It just looks inconsistent. Betas 1-3 looked perfect in that regard. Filed as FB19389091.
Topic:
UI Frameworks
SubTopic:
General
Tags:
- Replies
- Boosts
- Views
- Activity
Filed as FB19519914
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
- Replies
- Boosts
- Views
- Activity