Поле ввода многострочного текста хранит строку в качестве значения и строку в качестве текста. Его значение всегда является допустимой строкой, а его текстом может быть любая строка, введенная в его редактор. В отличие от поля ввода текста, это поле также поддерживает символы новой строки, вводимые в редакторе.
Многострочное поле ввода текста
Многострочное поле ввода текста с открытым редактором
Поле ввода многострочного текста в свернутом блоке
Создание
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');
}
};
Конструктор многострочного ввода текста принимает необязательное значение и необязательный валидатор . Значение должно быть преобразовано в строку. Если оно равно null
или undefined
, будет использоваться пустая строка.
Определение JSON также позволяет вам установить опцию проверки орфографии .
Сериализация
JSON
JSON для многострочного поля ввода текста выглядит следующим образом:
{
"fields": {
"FIELDNAME": "line1\nline2"
}
}
Где FIELDNAME
— это строка, ссылающаяся на многострочное поле ввода текста, а значение — это значение, которое следует применить к полю. Значение подчиняется тем же правилам, что и значение конструктора.
XML
XML для поля ввода многострочного текста выглядит следующим образом:
<field name="FIELDNAME">line1&#10;line2</field>
Где атрибут name
поля содержит строку, ссылающуюся на поле ввода многострочного текста, а внутренний текст — это значение, которое следует применить к полю. Внутреннее текстовое значение подчиняется тем же правилам, что и значение конструктора.
Кастомизация
Проверка орфографии
Функцию setSpellcheck можно использовать для установки того, будет ли поле проверять орфографию входного текста или нет.
Поля ввода текста с проверкой орфографии и без нее
Проверка орфографии включена по умолчанию.
Это касается отдельных полей. Если вы хотите изменить все поля, измените свойство Blockly.FieldMultilineInput.prototype.spellcheck_
.
Создание валидатора ввода текста
Значением поля ввода многострочного текста является строка, поэтому любые валидаторы должны принимать строку и возвращать строку, null
или undefined
.
Вот пример валидатора, который удаляет из строки все символы «a»:
function(newValue) {
return newValue.replace(/a/gm, '');
}