文字入力の抑止について - Printable Version +- Curl Global Community (https://communities.curl.com) +-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1) +--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2) +--- Thread: 文字入力の抑止について (/showthread.php?tid=279) Pages:
1
2
|
文字入力の抑止について - usami - 09-16-2011 TextFieldの{NumericValidator・・}で数値の検証を行い 数値以外の場合はエラーメッセージを表示するようにできるのですが、 そもそも数値以外の入力をさせたくない場合はどのような記述をすればいいでしょうか? KeyPressイベントで数値以外を入力したらundoするような機能ってあるのでしょうか? また、abcdeを入力してtabキーを押すとエラーは出るのですが、再度tabキーを押すと 検証されずに次の項目に遷移されてしまうのですが、毎回検証することはできないのでしょうか? Code: {let tf:TextField = RE: 文字入力の抑止について - nmyzk - 09-16-2011 若干乱暴ですがTextFieldを継承したクラスで UIのKeyPressイベントを止めつつ、 set-value-with-eventsを抑止すれば ほぼ入力できなくなると思います。 Code: {define-class public NumericTextField {inherits TextField} RE: 文字入力の抑止について - usami - 09-21-2011 ありがとうございます。 このままだとBackSpace等も効かなくなるので、それなりに工夫が必要ですね。 RE: 文字入力の抑止について - 森口 慶紀 - 09-22-2011 >TextFieldの{NumericValidator・・}で数値の検証を行い >数値以外の場合はエラーメッセージを表示するようにできるのですが、 >そもそも数値以外の入力をさせたくない場合はどのような記述をすればいいでしょうか? >KeyPressイベントで数値以外を入力したらundoするような機能ってあるのでしょうか? こんな感じではどうでしょう KeyPressイベントではなく、ValueChangeイベントにてundo処理を行っています。 ペーストされた場合でも値が入らない様になります。 Code: {curl 8.0 applet} RE: 文字入力の抑止について - usami - 09-22-2011 ありがとうございます。 123a と入力した場合undoだから全部消えてしまいますね。 aだけ消えるのはValueChangedでは難しいのでしょうか? RE: 文字入力の抑止について - Yuhki - 09-22-2011 単純な数値入力でよければ以下はいかがでしょうか? Code: {import * from CURL.LANGUAGE.REGEXP} マイナスを受け入れたり、小数点以下を許す場合には もっと工夫が必要かと思います。 RE: 文字入力の抑止について - nmyzk - 09-22-2011 Yuhkiさんに出遅れましたが、 前述のNumericTextFieldを改変したサンプルを作ってみました。 でもコピー&ペーストを許容するならYuhkiさんのつくりの方がよさそうですね。 ご参考まで。 [attachment=220] RE: 文字入力の抑止について - 森口 慶紀 - 09-22-2011 >123aと入力した場合undoだから全部消えてしまいますね。 >aだけ消えるのはValueChangedでは難しいのでしょうか? 申し訳ありません。確認不足でした。。。 Code: {curl 8.0 applet} RE: 文字入力の抑止について - usami - 09-22-2011 >nmyzkさん {set-of char}に許容する文字やキーを羅列しておけばよいということですね。 >森口さん 123aや12a3をコピーしてTextFieldにペーストしたら123だけ入るのってさすがに厳しいですかね? まぁ、そこまで要求することはないとは思いますが・・ RE: 文字入力の抑止について - usami - 09-22-2011 これまでのコメントを元に、max-charsになったら自動的にtabキーを押して次の項目に遷移するような TextFieldを作成してみました。初回起動して12345を入力しても遷移しないのですが、もう一度 12345を入力しなおすと自動遷移します。この現象ってどこに原因があるのでしょうか? 初回と2回目は同じ動きをしているっぽいのですが謎です。 また、tf2をmax-charsの変更だけで同じ挙動をさせたいのですがこの場合はNumericTextFieldのような 拡張クラスを作らなければならないのでしょうか? Code: {import * from CURL.LANGUAGE.REGEXP} |