统一删除输入字段中的字符

Remove characters in inputfield in unity

我在一个场景中有一个输入字段,我需要一个像 MM/YY 这样的格式,当用户输入前两个整数时 / 应该立即添加到第二个 character.So 我有添加以下代码 inputfield onvalueChanged 事件

 if (ExpiryDateInputField.text.Length == 2)
        {
            ExpiryDateInputField.text = ExpiryDateInputField.text + "/";

            ExpiryDateInputField.MoveTextEnd(false);
        }

这里的问题是,当我尝试删除文本时,/ 之后的文本正在删除,但 / 之前的文本没有被删除,我哪里做错了。

例如:如果我输入 1234,输入字段将显示为 12/34,当我尝试删除输入的文本时,单击键盘上的退格键时删除了输入的文本 3 和 4,但 12/ 没有删除。有什么办法解决吗?

问题基本上就是这样

您输入“12”,调用 OnValueChange 并添加“/”,现在您有“12/”。

您按退格键删除“/”,调用 OnValueChange 并添加“/”,现在您有“12/”。

您可以尝试记住 InputField 的最后一个值,如果该值包含“/”,则不要附加另一个“/”。

string last = string.Empty;

public void OnValueChange()
{
    if (ExpiryDateInputField.text.Length == 2 && !last.Contains("/"))
    {
         ExpiryDateInputField.text = ExpiryDateInputField.text + "/";

        ExpiryDateInputField.MoveTextEnd(false);
    }
    last = ExpiryDateInputField.text;
}