Man, NavigationSplitView is *still* broken in iOS 17 beta 7.
I reported back in May (FB12178616) that when in compact mode transitions become sporadic and stop working. This code is verbatim from Apple’s docs and it doesn't work.
This broke back in iOS 16.2. It seems nuts to me something so significant can stay broken for this long (and on a relatively new API?!)
https://gist.github.com/phillipcaudell/4cc223bec9a18970aed489d06580a56d
This doesn't seem that intuitive at first, but if you think about it, how would SwiftUI anticipate what action will be performed on your model?
In iOS 17 the animation has been improved considerably if you don't explicitly set the role, but for best results you still need to set it.
I recently got downvoted into oblivion for explaining why someone's List animation was glitching, perhaps because the solution is so simple it seems stupid.
On the left is swipeAction with a Button. On the right is the exact same Button, but now the animation is smooth.
The difference? I set the Button's role to destructive. SwiftUI uses the role to infer what animation to use. https://gist.github.com/phillipcaudell/e4ee5057dc33f92ed80b817762726275
As of beta 6 it seems to be reporting the wrong value if more than one row is selected on iPad.
I've filed a feedback for any Apple folk who see this 👉 FB13014204
Happy to see iOS 17 now gives our views a way to respond to the List selection style.
By reading the backgroundProminence value in the environment our custom controls, say an unread indicator, can adjust their tint as not to be occluded by the background: https://gist.github.com/phillipcaudell/e2ca686fcd6744b8341ac54f240a7798
Blahhh, it also looks like toolbar customisations are reset when the view identity changes. It works on iPad so I’m not sure if it's intentional (plus seems like it would defeat the purpose of specifying a toolbar identifier?)
No customisation on the Mac for now then 😢
https://gist.github.com/phillipcaudell/503ea2d3e2e7101b41a44f1c747387ad
Here's a fun SwiftUI bug: customisable toolbars on the Mac won't persist changes if there's a searchable modifier in the view hierarchy. Remove search, works fine.
🤷♂️
https://gist.github.com/phillipcaudell/349f1cb1ef6cef530276d6248306d28b (FB12999760)
#SwiftUI I'm stumped on how to add an undo keyboard shortcut on iPad. I'm using the environment's UndoManager. On the Mac, Undo appears in the Edit menu and "just works”.
I tried adding my own button, but UIKit throws a messaging saying it's duplicate, so I assume there is one but it's hidden?
Any ideas would be very much appreciated!
I wrongly assumed the format panel used in Mail was a system control like it is on macOS; but alas it isn't!
It ended up being a lot of fun recreating it, including the silly stretching/rubber-banding when you pull it.
#SwiftUI Has anyone got openWindow to work on iPadOS from the Command menu? Console throws "Use of OpenWindowAction requires the SwiftUI App Lifecycle" (the whole app is). Button works fine when inside a View (and works on Mac)
It's a shame DocC doesn't yet support multiple targets; it would make splitting things up much easier.
At least it’s being discussed: https://forums.swift.org/t/combined-documentation-of-multiple-targets/59579
Thinking of open-sourcing the #SwiftUI framework used to build Big Mail/Big News. It recreates a bunch of ‘missing’ system UI components (toasts, menus, pickers, etc), and has some common patterns for navigation, styling, etc.
It's one package right now (BigSwiftUI) but I'm torn whether to split it up into smaller packages.
Anyone interested in a package like this? Split it up or no?
🏳️🌈 Founder / Maker
Building that new email app.
Swift and rollercoasters are my thing.
Recovering VC.