Campos de entrada de texto de várias linhas

Um campo de entrada de texto de várias linhas armazena uma string como o valor dela e uma string como texto. O valor dela é sempre uma string válida, enquanto o texto pode ser qualquer string inserida no editor. Diferente de um campo de entrada de texto, esse campo também aceita caracteres de nova linha inseridos no editor.

Campo de entrada de texto de várias linhas

Campo de entrada de texto de várias linhas com o editor aberto

Campo de entrada de texto com várias linhas em um bloco recolhido

com base em trends

JSON

{
  "type": "example_multilinetextinput",
  "message0": "multiline text input: %1",
  "args0": [
    {
      "type": "field_multilinetext",
      "name": "FIELDNAME",
      "text": "default text\n with newline character",
      "spellcheck": false
    }
  ]
}

JavaScript

Blockly.Blocks['example_multilinetextinput'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("multiline text input:")
        .appendField(new Blockly.FieldMultilineInput('default text\n with newline character'),
            'FIELDNAME');
  }
};

O construtor de entrada de texto de várias linhas 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

JSON

O JSON para um campo de entrada de texto com várias linhas tem esta aparência:

{
  "fields": {
    "FIELDNAME": "line1\nline2"
  }
}

Em que FIELDNAME é uma string que se refere a um campo de entrada de texto de várias linhas, 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 com várias linhas tem esta aparência:

<field name="FIELDNAME">line1&amp;#10;line2</field>

Onde o atributo name do campo contém uma string que se refere a um campo de entrada de texto multilinha 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.FieldMultilineInput.prototype.spellcheck_.

Como criar um validador de entrada de texto

O valor de um campo de entrada de texto multilinha é 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/gm, '');
}