Forum Discussion
Pascal-Teooh
4 years agoExplorer
Issues with the Keyboard overlay
We're using the Keyboard overlay with Unity 2020.3.14 / Oculus XR Plugin 1.10.0pre2 / XR Plugin 4.0.7.
We have two related issues:
- When pressing the keyboard close button (bottom-right) the keyboard just reappears. It seem Unity never gets the focus back as I don't get a InputFocusAcquired event.
- The keyboard overlay doesn't seem to handle multiline fields properly. I would expect the tick button to become a return, but pressing this doesn't add a return and instead closes the keyboard, then re-opens it again and because of the previous issue with the close button means you are stuck in the keyboard overlay with no way out...
Both these issues happen with Unity UI InputFields & TMP versions.
Thanks,
Pascal.
Ok, so after a lot more digging, the keyboard close button bug is an issue with Unity's TouchScreenKeyboard implementation.
The status property of this doesn't change when pressing the keyboard close button. You'd expect this to change to Canceled or LostFocus or even Done, but it just doesn't change from Visible.
Both the Unity UI & TMP Input field code rely on this property and so explains why they both fail / do nothing in the same way.
The Java code for Unity's TouchScreenKeyboard native implementation for Android isn't easily available / readable / replaceable but luckily I had already developed our own replacement for this in our standard Android app. For some reason I thought this wouldn't work on Quest, but the Quest keyboard is actually a standard Input Method Editor so works with my implementation too 🙂
To be fair to Unity, detecting the Android keyboard closing is not as simple as it sounds, but after lots of failed attempts, I've got a working solution by polling InputMethodManager.isActive passing in the EditText field as the view.
15 Replies
Replies have been turned off for this discussion
- Pascal-TeoohExplorer
Ok, so after a lot more digging, the keyboard close button bug is an issue with Unity's TouchScreenKeyboard implementation.
The status property of this doesn't change when pressing the keyboard close button. You'd expect this to change to Canceled or LostFocus or even Done, but it just doesn't change from Visible.
Both the Unity UI & TMP Input field code rely on this property and so explains why they both fail / do nothing in the same way.
The Java code for Unity's TouchScreenKeyboard native implementation for Android isn't easily available / readable / replaceable but luckily I had already developed our own replacement for this in our standard Android app. For some reason I thought this wouldn't work on Quest, but the Quest keyboard is actually a standard Input Method Editor so works with my implementation too 🙂
To be fair to Unity, detecting the Android keyboard closing is not as simple as it sounds, but after lots of failed attempts, I've got a working solution by polling InputMethodManager.isActive passing in the EditText field as the view.
- AyfelExpert Protege
Is there a simple way to do this? In the latest implementation of the keyboard in v35 there are instances (only some occasions, not all the time) when pressing the checkmark or the hide keyboard button on the overlay keyboard will fail to return input to the application which leaves it effectively hanging as the users cannot do anything except go out to the oculus home and return to the application
- abebkoFVExplorer
Any tips on how to actually solve this?
- AyfelExpert Protege
We actually moved to using an in-app one since it was too fickle. We grabbed MRTKs and adapted it, feel free to grab it from here https://github.com/Ayfel/MRTK-Keyboard
- robin.zlobinExplorer
Still the same issue on Unity 2021.3.23f + Integration SDK 51.3.
Clicking close = keyboard than shows up again.
As the new Virtual Keyboard is still an experimental feature - it would be really helpful to be fixed!
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 1 year ago
- 1 year ago
- 20 days ago
- 2 years ago