Campos de entrada de texto

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

Campo de entrada de texto

Campo de entrada de texto com o editor aberto

Campo de entrada de texto em um bloco recolhido

Criação

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 recebe um valor opcional e um validador da solicitação. O valor deve ser convertido em fio. Se for null ou undefined, será usada uma string vazia.

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

Serialização e XML

JSON

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

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

Em que FIELDNAME é uma string que faz referência 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 para um campo de entrada de texto é assim:

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

O atributo name do campo contém uma string que faz referência a uma entrada de texto. e o texto interno é o valor a ser aplicado ao campo. O interior o valor de texto segue as mesmas regras que o valor do construtor.

Personalização

Verificação ortográfica

A setSpellcheck pode ser usada para definir se o campo verifica 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 está ativada por padrão.

Isso se aplica a campos individuais. Se quiser modificar todos os campos, altere o 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" caracteres do string:

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