Can 'long press' replace 'hover' when there is no mouse?

This is a question of style rather than programming. We can do anything with bits. My aim is to use the tools in a way that someone else would understand. So...

If I was on a device with a mouse, I might hover it over a button or a widget, and hope something like a tooltip popped up. You would not expect an immediate action, but might hope for some hopeful dialogue.

The nearest equivalent on a phone would seem to be the long press. This would see to have the slow deliberate "erm, what's this, exactly?" feeling that the hover does. You are holding your finger still so as not to swipe by accident. I feel this ought to bring up a Confirmation dialog, with the 'Cancel' option at the bottom. This would tell you what to do, and possibly offer a few actions, and always have an option for getting out without doing anything.

This is anathema to some designers. The dialogue is modal, so it interrupts the flow. The dialog text should be localised. I can understand these arguments, but I would argue that a Long Hold has already interrupted the flow. Is there anything else I ought to be using?

A Button has .help() but I can't get it to do anything. I assume this is a tooltip and mouse thing.

I could extend View to support a Long Hold tooltip, and leave them all over the place. This would seem to be a good way to go. But, if it is such a smart idea, why isn't it already there? IMHO the Path Less Travelled By is usually strewn with brambles, stinging plants, and rusty iron.

I can do this... MyView .onLongPressGesture { myShowDialogFlag = true } .confirmationDialog( MyHelpString, isPresented: $myShowDialogFlag )

I would like... MyView .helpDialog( MyHelpString )

Press and hold. Any view with .helpDialog() would trap the LongPushGesture, and stick up the dialog. The dialog would be dismissed without needing a boolean flag in the View itself. If there is no View with a .helpDialog() there should be a bottom-level message saying something to the effect... "This is how you look for help, but there is no help where you are pointing".

It works fine in my head. It is very like the .help() tooltips for buttons. I have had an iPhone for less than a month, and I have been writing Swift for less than that, so I am no expert. I feel this should be possible, but I can't see how to do it. Any ideas?

Can 'long press' replace 'hover' when there is no mouse?
 
 
Q