【问题标题】:How can I save my typed text in the input field after pressing back button in mobile in unity统一按下移动设备中的后退按钮后,如何将输入的文本保存在输入字段中
【发布时间】:2019-09-06 10:59:05
【问题描述】:

当我尝试在输入字段中输入内容时,文本会在输入时显示在输入字段中。我按下后退按钮的那一刻,它会自行清除。如果我输入完成按钮或在键盘顶部的输入空间中按下 OK 按钮,那么只有它会保存文本。与 android studio 不同,input 不会动态保存文本。我知道在逃跑时清理场地是统一设计的。我关注了一个线程 - push-back-button-escape-reverts-text-in-input-field,但在那里我找不到正确的答案。我还在统一论坛中看到了输入字段的 Esc 键问题。但找不到解决办法。

我已经尝试将它放到我的代码中

InputField textToSend;
string stringEdit = "";
public void OnEditting()
{
    if (!Input.GetKeyDown(KeyCode.Escape))
    {
        stringEdit = textToSend.text;
    }
}

public void OnEndEdit()
{
    if (Input.GetKeyDown(KeyCode.Escape))
    {
        textToSend.text = stringEdit;
    }
}

请帮我找到一个解决方案,在点击后退按钮后保留文本。

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    试试这个:

    textToSend.onValueChanged.AddListener(delegate { OnValueChangesInputField(); })
    
    public void OnValueChangesInputField()
    {
       //Dynamic Text, get the string as it is being types
       string dynamicText = textToSend.text;
    }
    

    【讨论】:

    • 您好 Azemda,感谢您的回复。 dynamicText 变量正在存储文本,但是当我按下后退按钮时,文本被删除。
    • PC 或 android 中的后退按钮?当您按下后退按钮时,输入的整个字符串会被删除,还是只删除输入的最后一个字符?
    • android 的后退按钮。整个字符串被删除。调试时,在输入字段中键入字符时,字符会存储在 dynamicText 中,但是当我按下转义键时,整个字符串都会被删除。所以,我尝试了 Input.GetKeydown(Keycode.Escape),它适用于 Unity Editor,但不适用于 android。
    • 在 onEndEdit() 函数的 if(Input.GetKeyDown(KeyCode.Escape)) 块中添加 Debug.Log 语句,并检查它是否显示在 abd logcat 中。
    猜你喜欢
    • 2020-01-07
    • 2015-05-26
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 2018-05-18
    • 1970-01-01
    相关资源
    最近更新 更多