Campos de entrada de texto

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

Campo de entrada de texto

Um bloco com o rótulo "entrada de texto:" e um campo de entrada de texto definido como "texto padrão".

Campo de entrada de texto com o editor aberto

O mesmo bloco com o campo sendo
editado.

Campo de entrada de texto em um bloco recolhido

O mesmo bloco depois de ser recolhido. Ele tem o rótulo "entrada de texto: texto padrão" e uma borda direita irregular para mostrar que está 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 opcional. 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 definir a opção spellcheck.

Serialização e XML

JSON

O JSON de um campo de entrada de texto é assim:

{
  "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 de um campo de entrada de texto é assim:

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

Em que o atributo name do campo contém uma string que faz referência 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 verifica a ortografia do texto de entrada ou não.

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

Um GIF animado mostrando dois blocos com campos de entrada de texto. O primeiro bloco tem a verificação ortográfica ativada, e as palavras com erros de ortografia são sublinhadas com uma linha vermelha ondulada. O segundo bloco tem a verificação ortográfica desativada, e as palavras com erros não estão sublinhadas.

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

Isso se aplica a campos individuais. Se 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.

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

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

Um GIF animado mostrando um campo de entrada de texto sendo validado. Quando o usuário
digita &quot;bbbaaa&quot; e clica em outro lugar, o campo muda para
&quot;bbb&quot;.