如何使ios键盘的回车键统一提交input?
我有一个Unity UI的input字段和一个文本框。 当我使用Input.GetKeyDown
( KeyCode.Return
)时,它只适用于OS X和PC版本,不适用于iOS版本。 iOS键盘的Return键什么都不做。 我也尝试过这些事件,但即使这样也行不通。
有人请告诉我解决这个问题,如果有的话?
虽然我无法想象在iOS上直接使用返回键的方法,但使用Unity中的TouchScreenKeyboard类的“提交”键可以实现这一点
具体来说,它有一个可变的TouchScreenKeyboard.done来指示用户是否按下任何移动设备上的“提交”(或同等)button(iOS,Android WP)
您也可以检查wasCanceledvariables以查看用户是否取消了input。
例
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"); } }
我从来没有尝试过这个IOS,所以我只是猜测在这里。
您是否正在使用Unity4.6 / Unity5中引入的新的Unity UI? 如果是这样的话,你可能想使用UI EventSystem
,你可能已经在场景中的某个地方了(当你添加新的Canvas
对象时,它自动被添加)。 如果你没有在场景中,通过菜单GameObject->UI->Event System
添加它。
在EventSystem
游戏对象中,有一个名为Standalone Input Module
,您可以在其中定义Submit Button
属性 – 将其映射到Unity的inputpipe理器( Edit->Project Settings->Input
)。
在单独的UI元素(即你的情况下的InputField
),你现在可以添加EventTrigger
组件,它可以监听Submit
事件并调用一个自定义方法,甚至可以传递一些数据(例如它本身作为方法的InputField
参数)。
您还可以通过这种方式听更多的事件(select,hover,拖动等)。