【发布时间】:2018-07-06 13:42:58
【问题描述】:
我在一个场景中有一个输入字段,我需要一个像 MM/YY 这样的格式,当用户输入前两个整数时,/ 应该立即添加到第二个字符。所以我添加了以下代码 inputfield onvalueChanged 事件
if (ExpiryDateInputField.text.Length == 2)
{
ExpiryDateInputField.text = ExpiryDateInputField.text + "/";
ExpiryDateInputField.MoveTextEnd(false);
}
这里的问题是,当我试图删除文本时,/ 之后的文本正在删除,但 / 之前的文本没有删除,我做错了。
例如:如果我输入 1234,输入字段将显示为 12/34,当我尝试删除输入的文本时,单击键盘上的退格键会删除 3 和 4,但 12/ 不会删除。有什么办法解决吗?
【问题讨论】:
-
您可以尝试将“.text”替换为“.value”吗?
-
@Andreaジーティーオー,感谢您的建议。但我已将该字段作为公共 InputField ExpiryDateInputField;所以它没有显示.value。
-
让我们想象一下
12/在那里。如果您删除/,那么长度将再次为 2。所以它再次添加它(因为这就是你的代码所做的)。它看起来好像没有移除它 - 但实际上它正在移除它,然后直接放回原处。您可以通过删除1来验证这一点 - 我敢打赌结果将是2//。
标签: c# unity3d input-field