Hiding the keyboard is like canceling input by hitting escape. It goes back to what it was before. If you had text, it will go back to that text. If you had nothing, it will return to nothing. The way it is right now is how it should be, and if it wasn't like this before then that's a bug. If you don't like this behaviour, you can modify your UIInput's Update function. It's this part right here:
string text = mKeyboard.text;
if (mText != text)
{
mText = "";
for (int i = 0; i < text.Length; ++i)
{
char ch = text[i];
if (validator != null) ch = validator(mText, ch);
if (ch != 0) mText += ch;
}
if (maxChars > 0 && mText.Length > maxChars) mText = mText.Substring(0, maxChars);
if (mText != text) mKeyboard.text = mText;
UpdateLabel();
SendMessage("OnInputChanged", this, SendMessageOptions.DontRequireReceiver);
}
I'm pretty sure if you remove it, it's going to return to how it was before.