As I posted in OP, there's an easy hack that forces the keyboard to show up each time you click on the UIInput.
We force the keyboard to open directly in OnPress. This is the method Arenmook is using for the caret positioning/selection handling.
This means, adding the following code to OnPress (posting the whole method goes against the rules, but it is a small one):
#if UNITY_METRO
var key = TouchScreenKeyboard.Open(null); // null is also not what we need here, but as a hack it is good enough
key.active = true;
#endif
But showing the keyboard is only the first of the problems!
The second problem, which I wasn't able to bypass, is that
the UIInput themselves don't receive the "Backspace" or "Arrow key"s key inputs.
Therefore, it is impossible to remove things you have written.
Anyone got any idea? I will try tracing back the events again, but from my first try:
- He calls DoBackspace() inside ProcessEvent()
- He calls Insert("") which theoretically replaces the last character with "" (empty character).