Is it me or is SwiftUI on macOS just awful?

I have recently created a pure (admittedly simple) SwiftUI app for iOS/iPad. Yes there are bugs and limitations I've had to face but eventually with a certain amount of compromise and without resorting to UIViewRepresentable, it works adequately.

Great, I thought, how hard can it be to create a macOS version of the same app? Take TextField (swiftUI) views which my app depends on a lot, the issues I have found have been numerous...

  1. TextField does not appear to update the Binded variable after each character is typed in. You have to hit the return key for it to register. Totally different functionality.

  2. Placeholder text shifts up a few pixels when it gets keyboard focus.

  3. The rectangle where the text is typed needs to be taller holding the text, currently it looks squashed.

  4. Manually adding a ‘clear text’ button on top of the TextField (at the right) appears not to to be active when the cursor is over it (most of the time)

  5. Lots of missing autocapitalisation type functionality is missing.

I could go back to a NSViewRepesentable solution of the TextField but that negates the use of 'supported' SwiftUI features. Has this half baked feature been pushed out there as a 'tick in the box' option or is Apple genuinely happy with their solution?

Anyhow, I thought let's do a MacCatalyst version of my App instead. But we get a TabView looking like a iPad/iPhone App, there is no option to make it look more mac like AFAIS without abandoning TabView itself!

Then there's the complication of making my Core Data App work as a 'Document Based' app with the new DocumentGroup/Scene solution.... how does NSPersistentDocument work in such scenarios? The documentation is vague at best, or simply not supported without a lot of workarounds.

Just these few things make me feel we are being hyped with solutions which are far too premature for any real world work on macOS at the moment.

What potential SwiftUI/macOS blockers have you encountered?

Replies

Did you file a bug report ?
Yup. I've filed lots.
No, you're not alone. How the hell are we supposed to localize the mac App menu in SwiftUI using the App protocol lifecycle?
The storyboard/xib approach gives us a complete menu bar with even added menu items at run time which the system inserts and localizes for free such as "Enter Full Screen" and "Show/Hide Toolbar". The menu that SwiftUI gives us seems to be stripped down and not only does it not auto-localizes but there doesn't seem to be a way to localize it using strings file.