C# 按下Android上的后退按钮关闭/隐藏键盘正在清除我的输入字段
我有两种方法为输入字段触发Unity事件,尝试将输入字段值保存到变量中,然后在按下back按钮时将该值返回到输入字段,但在Android上不起作用。它与Unity Editor配合得很好 公共字符串密码持有者=” 公开作废OnEditting() } 公共空间 { } 我做错了什么?当键盘打开时,“输入”不能正常工作。因此,您无法使用“ESC”/“后退”按钮进行检查 我所做的是创建一个方法来监听键盘状态改变的事件。如果要隐藏(取消),我会在字段中保留上一个文本 我使用InputField组件将脚本添加到对象中,这是我在“开始”中输入的代码: 它对我有用,我希望它对你也有用C# 按下Android上的后退按钮关闭/隐藏键盘正在清除我的输入字段,c#,android,unity3d,back-button,input-field,C#,Android,Unity3d,Back Button,Input Field,我有两种方法为输入字段触发Unity事件,尝试将输入字段值保存到变量中,然后在按下back按钮时将该值返回到输入字段,但在Android上不起作用。它与Unity Editor配合得很好 公共字符串密码持有者=” 公开作废OnEditting() } 公共空间 { } 我做错了什么?当键盘打开时,“输入”不能正常工作。因此,您无法使用“ESC”/“后退”按钮进行检查 我所做的是创建一个方法来监听键盘状态改变的事件。如果要隐藏(取消),我会在字段中保留上一个文本 我使用InputField组件将脚
{
if (Application.platform == RuntimePlatform.Android)
{
if (!Input.GetKeyDown(KeyCode.Escape))
{
passwordHolder = passwordText.text;
}
}
if (Application.platform == RuntimePlatform.Android)
{
if (Input.GetKeyDown(KeyCode.Escape))
{
passwordText.text = passwordHolder;
}
}
inputField = gameObject.GetComponent<TMP_InputField>();
inputField.onEndEdit.AddListener(EndEdit);
inputField.onValueChanged.AddListener(Editing);
inputField.onTouchScreenKeyboardStatusChanged.AddListener(ReportChangeStatus);
private void ReportChangeStatus(TouchScreenKeyboard.Status newStatus)
{
if (newStatus == TouchScreenKeyboard.Status.Canceled)
keepOldTextInField = true;
}
private void Editing(string currentText)
{
oldEditText = editText;
editText = currentText;
}
private void EndEdit(string currentText)
{
if (keepOldTextInField && !string.IsNullOrEmpty(oldEditText))
{
//IMPORTANT ORDER
editText = oldEditText;
inputField.text = oldEditText;
keepOldTextInField = false;
}
}