问题
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