C# 按下Android上的后退按钮关闭/隐藏键盘正在清除我的输入字段

C# 按下Android上的后退按钮关闭/隐藏键盘正在清除我的输入字段,c#,android,unity3d,back-button,input-field,C#,Android,Unity3d,Back Button,Input Field,我有两种方法为输入字段触发Unity事件,尝试将输入字段值保存到变量中,然后在按下back按钮时将该值返回到输入字段,但在Android上不起作用。它与Unity Editor配合得很好 公共字符串密码持有者=” 公开作废OnEditting() } 公共空间 { } 我做错了什么?当键盘打开时,“输入”不能正常工作。因此,您无法使用“ESC”/“后退”按钮进行检查 我所做的是创建一个方法来监听键盘状态改变的事件。如果要隐藏(取消),我会在字段中保留上一个文本 我使用InputField组件将脚

我有两种方法为输入字段触发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;
    }
}