how make to make ios keyboard's return key submit input in unity?

▼魔方 西西 提交于 2019-12-24 14:06:00

问题


I have a Unity UI's input field and a text box. When I use Input.GetKeyDown (KeyCode.Return), it only works on the OS X and PC build and not on the iOS build. iOS keyboard's Return key does nothing. I have tried the events, too, but it doesn't work even then.

Somebody please tell me the solution to this problem if there is any?


回答1:


While I can't think of a way to harness the return key directly on iOS, there is a way to do so with the "Submit" key using the TouchScreenKeyboard class in Unity

Specifically, it has a variable TouchScreenKeyboard.done to indicate whether the user has pressed the "Submit" (or equivalent) button on any mobile device (iOS, Android WP)

You can also check the wasCanceled variable to see whether the user canceled the input.

Example

public class TouchKeyboardExample : Monobehaviour {

    private TouchScreenKeyboard touchScreenKeyboard;
    private string inputText = string.Empty;

    void Start () {
        touchScreenKeyboard = TouchScreenKeyboard.Open(inputText, TouchScreenKeyboardType.Default);
    }

    void Update () {
        if(touchScreenKeyboard == null)
            return;
        inputText = touchScreenKeyboard.text;
        if(touchScreenKeyboard.done)
            Debug.Log("User typed in "+inputText);
        if(touchScreenKeyboard.wasCanceled)
            Debug.Log("User canceled input");
    }

}



回答2:


I've never tried this on IOS, so I'll just guess here.

Are you using the new Unity UI that was introduced in Unity4.6 / Unity5? If so, you might want to use the UI EventSystem, which you probably have somewhere in scene already (it is being added automatically when you add new Canvas object). If you don't have it in scene, add it via menu GameObject->UI->Event System.

In the EventSystem game object, there's a component called Standalone Input Module, where you can then define Submit Button property - which is mapped to Unity's Input Manager (Edit->Project Settings->Input).

On the individual UI element (i.e. InputField in your case), you can now add EventTrigger component, which can listen to Submit event and call a custom method, even pass it some data (e.g. itself, as InputField parameter of the method).

You can also listen to many more events this way (select, hover, drag, etc).



来源:https://stackoverflow.com/questions/31803135/how-make-to-make-ios-keyboards-return-key-submit-input-in-unity

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!