ハイライト表示時のTextFieldを書き換える - 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: ハイライト表示時のTextFieldを書き換える (/showthread.php?tid=395) |
ハイライト表示時のTextFieldを書き換える - usami - 01-20-2012 下記URL http://developers.curlap.com/faq/48-faq-specification/669-2010-12-24-00-36-19.html を参考に、次のコードにて全角および半角のカンマを入力できないようなTextFieldを作成しましたが、 ハイライト表示の状態でTextFieldの値を書き換えると、文字列が入れ替わらず、追記になってしまいますが、 これを回避する方法はありますか? 操作手順 1.全角で「123,456」を入力すると、値には「123456」が入ります 2.次に、123456の後ろに「789」を入力すると、値には「123456789」が入ります 3.次に、「123456789」をハイライト表示させたあと、「987,654」を入力すると、 期待する動作は「987654」ですが、実際は「123456789987654」になってしまいます。 Code: {curl 8.0 applet} RE: ハイライト表示時のTextFieldを書き換える - c-s - 01-23-2012 わざと set tf.value = valuestr & str をしているでしょう。 というと、「今のvalueと追加して」の意味ですね。 代わりに {tf.replace-selection-with-string str} 的な何かをした方がいいではないでしょうか。 RE: ハイライト表示時のTextFieldを書き換える - usami - 01-23-2012 どうもありがとうございます。 お見込みの通り、これをやらないと追記できなくて強制的にValueChangedイベントを発行してたのですが、 CompositionResultEventを次のように書き換えたら、全角スペースが 1文字しか入らず、かつハイライト表示になってしまいました。 {TextField input-method-focus-behavior = "activate"} これだけだとハイライト表示されずに全角スペースが入ってくれるのですが何かよい方法はあるのでしょうか? Code: {on e:CompositionResultEvent do RE: ハイライト表示時のTextFieldを書き換える - c-s - 01-23-2012 replace-selection-with-string してから select-nothing をすればハイライトじゃなくなります。 RE: ハイライト表示時のTextFieldを書き換える - usami - 01-24-2012 期待した動作になりました。 どうもありがとうございました。 |