0
我有一個TextField,我希望從中獲取整數輸入。在以前的C#WPF的版本,我訂閱PreviewTextInput如下:Scala Swing:驗證TextBox的整數輸入
private void PrevInp(object sender, TextCompositionEventArgs e)
{
int temp;
if (!(int.TryParse(e.Text, out temp)))
e.Handled = true;
else
if (TextAltered == false)
{
inp.Text = "";
TextAltered = true;
}
}
希望我可以做一些在斯卡拉乾淨了一點。我看到你可以爲inputVerifier設置一個函數,但只有在TextField失去焦點時才調用inputVerifier。
我可以使用事件的keyTyped像這樣:
val intF = new TextField(defInt.toString, 5)
{
inputVerifier = myV _
listenTo(keys, this)
reactions += { case e: KeyTyped => text = text.filter(_.isDigit)}
def myV(v: Component): Boolean = text.forall(_.isDigit)
}
而利用過濾器後按新的鍵被添加。