多行文本输入字段

多行文本输入字段将字符串作为其值,并将字符串作为其文本。其值始终是有效字符串,而其文本可以是输入其编辑器中的任何字符串。与文本输入字段不同,此字段也支持在编辑器中输入的换行符。

多行文本输入字段

已打开编辑器的多行文本输入字段

收起块上的多行文本输入字段

恣意创作

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

多行文本输入构造函数接受一个可选值和一个可选validator。该值应转换为字符串。如果是 nullundefined,将使用空字符串。

通过 JSON 定义,您还可以设置 spellcheck 选项。

序列化

JSON

多行文本输入字段的 JSON 如下所示:

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

其中,FIELDNAME 是一个引用多行文本输入字段的字符串,其值是要应用于该字段的值。该值遵循的规则与构造函数值相同。

XML

多行文本输入字段的 XML 如下所示:

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

其中,该字段的 name 属性包含一个引用多行文本输入字段的字符串,而内部文本是要应用于该字段的值。内部文本值遵循与构造函数值相同的规则。

自定义

拼写检查

setSpellcheck 函数可用于设置字段是否对其输入文本进行拼写检查。

无论是否使用拼写检查,文本输入字段

拼写检查默认处于启用状态。

这适用于单个字段。如果要修改所有字段,请更改 Blockly.FieldMultilineInput.prototype.spellcheck_ 属性。

创建文本输入验证程序

多行文本输入字段的值是一个字符串,因此任何验证程序都必须接受字符串并返回字符串 nullundefined

以下是从字符串中移除所有“a”字符的验证器示例:

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