2010年11月16日火曜日

TextBoxのtextとrawText

TextBoxのtextにbindさせていると、textには最初に設定された値が残ったままで、TextBoxで入力された値はrawTextにセットされる模様。厳密な仕様は分からないが、実際の動きを見るとそんな感じ。

textに何もbindされてなければTextBoxから入力された値がtextに入る。

textに何かbindすると、bind元が変わったとき、TextBoxに値が設定されると同時に、反転表示になる。

4 件のコメント:

  1. こんなのではどうですか?

    var text: String = "0";
    var num: Number = bind Number.parseFloat(text);

    Stage {
    scene: Scene {
    content: TextBox {
    text: bind text with inverse
    }
    }
    }

    返信削除
  2. skrbさん、コメントありがとうございます!

    どちらかというと、numが変わったときにtextを変えて、textが変わったらENTERのactionでnumを変える、という方向でして。

    返信削除
  3. では、こんな感じで

    var text: String = "0";
    var num: Number on replace {
    text = num.toString();
    }

    var box1: TextBox;

    Stage {
    scene: Scene {
    content: [
    box1 =TextBox {
    text: bind text
    action: function() {
    num = Number.parseFloat(box1.rawText);
    }
    },
    ]
    }
    }

    num が変更されたら、トリガーでTextBoxのtextを変更します。TextBoxのテキストが変更されたら、actionでrawTextを数値にして、numに代入しています。

    返信削除
  4. skrbさん、コメントありがとうございます!

    actionのところはrawTextで良いでしょうか。

    私が書いているものを、skrbさんのコードを参考に抜き出すとこんな感じだと思います。

    var realnum=2.0;
    var num: Number = bind realnum with inverse;

    var box1: TextBox;

    Stage {
    scene: Scene {
    content: [
    box1 =TextBox {
    text: bind num.toString()
    action: function() {
    realnum = Number.parseFloat(box1.rawText);
    }
    },
    ]
    }
    }

    返信削除