テキスト入力フィールド

テキスト入力フィールドには文字列が値として格納され、文字列がテキストとして格納されます。値は常に有効な文字列ですが、テキストはエディタに入力された任意の文字列です。

テキスト入力フィールド

エディタを開いたテキスト入力フィールド

折りたたまれたブロックのテキスト入力フィールド

動画を作成

JSON

{
  "type": "example_textinput",
  "message0": "text input: %1",
  "args0": [
    {
      "type": "field_input",
      "name": "FIELDNAME",
      "text": "default text",
      "spellcheck": false
    }
  ]
}

JavaScript

Blockly.Blocks['example_textinput'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("text input:")
        .appendField(new Blockly.FieldTextInput('default text'),
            'FIELDNAME');
  }
};

テキスト入力コンストラクタは、オプションの値とオプションのvalidatorを受け取ります。値は文字列にキャストする必要があります。null または undefined の場合は、空の文字列が使用されます。

JSON 定義では、spellcheck オプションを設定することもできます。

シリアル化と XML

JSON

テキスト入力フィールドの JSON は次のようになります。

{
  "fields": {
    "FIELDNAME": "text"
  }
}

ここで、FIELDNAME はテキスト入力フィールドを参照する文字列で、値はフィールドに適用する値です。この値は、コンストラクタの値と同じルールに従います。

XML

テキスト入力フィールドの XML は次のようになります。

<field name="FIELDNAME">text</field>

フィールドの name 属性にはテキスト入力フィールドを参照する文字列が含まれており、内部テキストはフィールドに適用する値です。内部テキストの値はコンストラクタの値と同じルールに従います。

カスタマイズ

スペルチェック

setSpellcheck 関数を使用すると、フィールドで入力テキストのスペルチェックを行うかどうかを設定できます。

テキスト入力フィールド(スペルチェックがある場合とない場合)

スペルチェックはデフォルトでオンになっています。

これは個々のフィールドに適用されます。すべてのフィールドを変更する場合は、Blockly.FieldTextInput.prototype.spellcheck_ プロパティを変更します。

テキスト入力バリデータの作成

テキスト入力フィールドの値は文字列であるため、すべてのバリデータは文字列を受け入れ、文字列、null、または undefined を返す必要があります。

文字列からすべての「a」文字を削除するバリデータの例を次に示します。

function(newValue) {
  return newValue.replace(/a/g, '');
}