Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
178 views
in Technique[技术] by (71.8m points)

c# - Unity and native android keyboard

I'm a newbie in Unity and my English is not perfect. I have a huge problem with the native keyboard numeric keyboard on android an inputfield. When I write numbers and press "OK" all is fine. But when I close the keyboard with "arrow" on the bottom of the phone text in inputfield is reset to empty. I found the code to fix it

[SerializeField] InputField inputField;
bool keepOldTextInField;
string oldEditText;
string editText;

void Start()
{
    
    inputField.onEndEdit.AddListener(EndEdit);
    inputField.onValueChanged.AddListener(Editing);
}
void Update()
{
    if (TouchScreenKeyboard.hideInput)
    {
        keepOldTextInField = true;
    }
}

private void Editing(string currentText)
{
    oldEditText = editText;
    editText = currentText;
}

private void EndEdit(string currentText)
{
    if (keepOldTextInField)
    {
        //IMPORTANT ORDER
        editText = oldEditText;
        inputField.text = oldEditText;

        keepOldTextInField = false;
    }
}

It works but now when I press the "OK" button on the native android keyboard text retreats by 1 character. For example, I type "200" and press "OK" and in inputfield is "20" for now. Please help me.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...