In einem mehrzeiligen Texteingabefeld werden ein String als Wert und ein String als Text gespeichert. Der Wert ist immer ein gültiger String. Der Text kann ein beliebiger String sein, der in den Editor eingegeben wurde. Im Gegensatz zu einem Texteingabefeld unterstützt dieses Feld auch Zeilenumbrüche, die im Editor eingegeben werden.
Mehrzeiliges Texteingabefeld
Mehrzeiliges Texteingabefeld bei geöffnetem Editor
Mehrzeiliges Texteingabefeld in minimiertem Block
Erstellung
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');
}
};
Der mehrzeilige Texteingabekonstruktor übernimmt einen optionalen Wert und einen optionalen validator. Der Wert sollte in einen String umgewandelt werden. Im Fall von null
oder undefined
wird ein leerer String verwendet.
In der JSON-Definition können Sie auch die Option spellcheck festlegen.
Serialisierung
JSON
Der JSON-Code für ein mehrzeiliges Texteingabefeld sieht so aus:
{
"fields": {
"FIELDNAME": "line1\nline2"
}
}
Dabei ist FIELDNAME
ein String, der auf ein mehrzeiliges Texteingabefeld verweist, und der Wert ist der Wert, der auf das Feld angewendet werden soll. Der Wert folgt denselben Regeln wie der Konstruktorwert.
XML
Der XML-Code für ein mehrzeiliges Texteingabefeld sieht so aus:
<field name="FIELDNAME">line1&#10;line2</field>
Dabei enthält das Attribut name
des Felds einen String, der auf ein mehrzeiliges Texteingabefeld verweist, und der innere Text ist der Wert, der auf das Feld angewendet werden soll. Der innere Textwert folgt denselben Regeln wie der Konstruktorwert.
Anpassbare
Rechtschreibprüfung
Mit der Funktion setSpellcheck können Sie festlegen, ob für das Feld eine Rechtschreibprüfung für den Eingabetext durchgeführt werden soll.
Texteingabefelder mit und ohne Rechtschreibprüfung
Die Rechtschreibprüfung ist standardmäßig aktiviert.
Dies gilt für einzelne Felder. Wenn Sie alle Felder ändern möchten, ändern Sie das Attribut Blockly.FieldMultilineInput.prototype.spellcheck_
.
Texteingabevalidierung erstellen
Der Wert eines mehrzeiligen Texteingabefelds ist ein String. Daher müssen alle Validatoren einen String akzeptieren und einen String, null
oder undefined
zurückgeben.
Hier ist ein Beispiel für eine Validierung, die alle „a“-Zeichen aus dem String entfernt:
function(newValue) {
return newValue.replace(/a/gm, '');
}