TextField にある値が入力された際に値のチェックを行い、
ある条件の場合に、変更前の値に表示を戻したいです。
変更前の値を簡単に取得するには、どうすればよいですか?
value セッター が呼ばれるたびに、値を保持する方法しかないでしょうか。
undo メソッドが使えるかと思いましたが、スタック数の問題もあり、確実ではないと思っています。
Code:
{curl 8.0 applet}
{curl-file-attributes character-encoding = "utf8"}
{applet manifest = "manifest.mcurl",
{compiler-directives careful? = true}
}
「0」 が入力されたら、「変更前の値」をポップアップする
{def tf =
{TextField
{on ValueFinished at tf:TextField do
{if tf.value == "0" then
{tf.undo}
def val = tf.value
{popup-message "「0」が入力されたので、変更前の「" & val & "」に戻しました。"}
}
}
}
}
{value tf}
{CommandButton
label = "set-value-with-events \"test\"",
{on Action do
{tf.set-value-with-events "evnets test"}
}
}
{CommandButton
label = "set-value-with-events \"0\"",
{on Action do
{tf.set-value-with-events "0"}
}
}
{CommandButton
label = "set .value \"test\"",
{on Action do
set tf.value = ".value test"
}
}
{CommandButton
label = "set .value \"0\"",
{on Action do
set tf.value = "0"
}
}