Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

TextMesh Pro 2018.4.32 TMP_InputField Manual OnScreen Keyboard Activation

Discussion in 'UGUI & TextMesh Pro' started by Milky_Dev, Mar 25, 2021.

  1. Milky_Dev


    Mar 25, 2021

    We are using unity 2018.4.32 on mobile platforms including apple TV. We are using a
    to capture user input and display it on screen. Our game supports both controller and touch inputs.

    We are currently calling
    when the user presses a button on the controller, this does successfully bring up the onscreen keyboard for all devices. However, once the keyboard is closed (either cancelled or return is pressed), calling this method yields no onscreen keyboard. i.e. we can only get the keyboard to show once, and the app needs to be restarted for the onscreen keyboard to show again.

    If the user touches the input screen, the keyboard successfully comes up, and is able to open the keyboard as many times as they like. This issue is only happens when trying to display the onscreen keyboard via code.

    Is there something else we should be calling to clear some funky state?

    Thanks in advance
  2. Stephan_B


    Unity Technologies

    Feb 26, 2017
    Any chance you could submit a bug report with project? This would make it easier for me to reproduce this and take a closer look.

    If you do submit a bug report, please provide the Case # once you get it from Unity via email.
  3. Milky_Dev


    Mar 25, 2021
    Hi Stephen, Thank you for getting back to me.

    I have tried to recreate the issue in an empty project, to which I have been unable to recreate it with a simple UI button (calling m_InputField.Select() on click), I have confirmed that using this same setup seems to work in our project too.

    I will need to install rewired into the empty project and set that up to create a more accurate setup - Maybe its more of a case of when m_InputField.Select() is being called.

    To try and map out the problem a little more I created this flow diagram
    Once the keyboard is in the "keyboard Does not open" state, it can only be opened by touch (or a ui button), when the keyboard is closed via tapping away from the keyboard, it returns to the normal functional state and is able to be opened via controller once more. Interestingly if you open it by controller, press done, open it by touch press done, it can not be opened by controller

    I have ruled out that the Select() is being called at a strange time option. On controller input i toggle a bool, then on update when that bool is true I open the keyboard (and toggle the bool back again). The result is the issue still happens
    Last edited: Mar 26, 2021