Wielowierszowe pola do wprowadzania tekstu

Wielowierszowe pole do wprowadzania tekstu zawiera ciąg znaków jako wartość, a ciąg znaków jako tekst. Jego wartością jest zawsze prawidłowy ciąg znaków, a jego tekstem może być dowolny ciąg wpisany do edytora. W przeciwieństwie do pola do wprowadzania tekstu to pole obsługuje też znaki nowego wiersza wpisane w edytorze.

Wielowierszowe pole do wprowadzania tekstu

Wielowierszowe pole do wprowadzania tekstu z otwartym edytorem

Wielowierszowe pole wprowadzania tekstu w zwiniętym bloku

na podstawie trendów

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

Konstruktor do wprowadzania tekstu wielowierszowego przyjmuje wartość opcjonalną i opcjonalny validator. Wartość powinna być rzutowana na ciąg znaków. Jeśli to null lub undefined, zostanie użyty pusty ciąg.

Definicja JSON umożliwia też ustawienie opcji spellcheck.

Serializacja

JSON

Kod JSON wielowierszowego pola do wprowadzania tekstu wygląda tak:

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

Gdzie FIELDNAME to ciąg znaków odwołujący się do wielowierszowego pola do wprowadzania tekstu, a wartość to wartość do zastosowania do pola. Wartość podlega tym samym regułom co wartość konstruktora.

XML

Kod XML wielowierszowego pola do wprowadzania tekstu wygląda tak:

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

Gdzie atrybut name pola zawiera ciąg znaków odwołujący się do wielowierszowego pola do wprowadzania tekstu, a tekst wewnętrzny to wartość do zastosowania do pola. Wewnętrzna wartość tekstowa podlega tym samym regułom co wartość konstruktora.

Personalizacja

sprawdzanie pisowni;

Za pomocą funkcji setSpellcheck można określić, czy w polu ma być sprawdzany wpisany tekst.

Pola tekstowe ze sprawdzaniem pisowni i bez niego

Sprawdzanie pisowni jest domyślnie włączone.

Ma to zastosowanie do poszczególnych pól. Jeśli chcesz zmodyfikować wszystkie pola, zmień właściwość Blockly.FieldMultilineInput.prototype.spellcheck_.

Tworzenie walidatora wprowadzania tekstu

Wartość wielowierszowego pola do wprowadzania tekstu jest ciągiem tekstowym, więc wszystkie narzędzia do weryfikacji muszą zaakceptować ciąg znaków i zwrócić ciąg znaków (null) lub undefined.

Oto przykład walidatora, który usuwa z ciągu znaków wszystkie znaki „a”:

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