Campos de entrada de texto de varias líneas

Un campo de entrada de texto de varias líneas almacena una cadena como su valor y una cadena como su texto. Su valor es siempre una string válida, mientras que el texto puede ser cualquier string que se ingrese en el editor. A diferencia de un campo de entrada de texto, este campo también admite caracteres de salto de línea ingresados en el editor.

Campo de entrada de texto de varias líneas

Campo de entrada de texto de varias líneas con el editor abierto

Campo de entrada de texto de varias líneas en el bloque contraído

Creación

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

El constructor de entrada de texto de varias líneas recibe un valor y un validator opcionales. El valor debe convertirse en una cadena. Si es null o undefined, se usará una string vacía.

La definición JSON también te permite establecer la opción spellcheck.

Serialización

JSON

El JSON para un campo de entrada de texto de varias líneas se ve de la siguiente manera:

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

En la que FIELDNAME es una cadena que hace referencia a un campo de entrada de texto de varias líneas y el valor es el valor que se debe aplicar al campo. El valor sigue las mismas reglas que el valor del constructor.

XML

El XML de un campo de entrada de texto de varias líneas se ve de la siguiente manera:

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

Cuando el atributo name del campo contiene una cadena que hace referencia a un campo de entrada de texto de varias líneas, y el texto interno es el valor que se debe aplicar al campo. El valor de texto interno sigue las mismas reglas que el valor del constructor.

Personalización

Corrector ortográfico

Se puede usar la función setSpellcheck para establecer si el campo debe revisar la ortografía del texto de entrada o no.

Campos de entrada de texto con y sin corrector ortográfico

El corrector ortográfico está activado de forma predeterminada.

Esto se aplica a campos individuales. Si deseas modificar todos los campos, cambia la propiedad Blockly.FieldMultilineInput.prototype.spellcheck_.

Cómo crear un validador de entrada de texto

El valor de un campo de entrada de texto de varias líneas es una string, por lo que cualquier validador debe aceptar una string y mostrar una string, null o undefined.

Este es un ejemplo de un validador que quita todos los caracteres “a” de la string:

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