Good idea and you're not missing anything: TextField has no masking today, so the TextChange-comparison dance is currently the only way to do it.
I've logged it as a feature request: https://feedback.objo.dev/feature/1625
The shape I have in mind is an InputMask property on TextField (desktop and web) using the familiar mask characters: # for a required digit, 9 for an optional digit, A/a for alphanumeric, ? for a letter, &/C for any character, and a backslash to escape anything you want as a literal. Your UK date would be InputMask = "##/##/####" — the field shows __/__/____ with the slashes already in place, accepts digits only, and typing 29092026 yields 29/09/2026. There would also be an IsMaskComplete property so you know when the whole pattern has been filled in before you parse the text.
On the roadmap: there isn't a public roadmap at the moment - the forum and feedback.objo.dev are where requests land, so posting here was exactly the right thing to do.
The Feedback does allow complex filtering though: https://feedback.objo.dev