Campos de entrada de texto

Um campo de entrada de texto armazena uma string como seu valor e uma string como texto. O valor dela é sempre uma string válida, enquanto o texto pode ser qualquer string inserida no editor.

Campo de entrada de texto

Campo de entrada de texto com o editor aberto

Campo de entrada de texto em um bloco recolhido

com base em trends

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');
  }
};

O construtor de entrada de texto aceita um valor e um validator opcionais. O valor precisa ser convertido em uma string. Se for null ou undefined, uma string vazia será usada.

A definição JSON também permite que você configure a opção spellcheck.

Serialização e XML

JSON

O JSON para um campo de entrada de texto tem esta aparência:

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

Em que FIELDNAME é uma string que se refere a um campo de entrada de texto, e o valor é o valor a ser aplicado ao campo. O valor segue as mesmas regras do valor do construtor.

XML

O XML de um campo de entrada de texto tem esta aparência:

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

Onde o atributo name do campo contém uma string que se refere a um campo de entrada de texto, e o texto interno é o valor a ser aplicado ao campo. O valor do texto interno segue as mesmas regras do valor do construtor.

Personalização

Verificação ortográfica

A função setSpellcheck pode ser usada para definir se o campo vai verificar a ortografia do texto de entrada ou não.

Campos de entrada de texto com e sem verificação ortográfica

A verificação ortográfica fica ativada por padrão.

Isso se aplica a campos individuais. Se você quiser modificar todos os campos, mude a propriedade Blockly.FieldTextInput.prototype.spellcheck_.

Como criar um validador de entrada de texto

O valor de um campo de entrada de texto é uma string. Portanto, todos os validadores precisam aceitar uma string e retornar uma string null ou undefined.

Veja um exemplo de um validador que remove todos os caracteres "a" da string:

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