Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

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

    Milky_Dev

    Joined:
    Mar 25, 2021
    Posts:
    2
    Hello,

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

    We are currently calling
    m_InputField.Select()
    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

    Stephan_B

    Joined:
    Feb 26, 2017
    Posts:
    6,595
    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

    Milky_Dev

    Joined:
    Mar 25, 2021
    Posts:
    2
    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
    upload_2021-3-26_12-57-28.png
    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


    --update--
    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