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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…