TagField
TagField 是一个 NBT 标签输入字段。它封装了 TextField 并提供 NBT 文本的语法高亮渲染(字符串显示为绿色,数字显示为金色,布尔值显示为紫色,括号显示为青色,分隔符显示为灰色,键名显示为紫色)。无效输入将以错误颜色显示。
该字段的值是一个 Tag(任意 NBT 类型)。TagField 继承自 BindableUIElement<Tag>。
UIElement 中记录的所有内容(布局、样式、事件、数据绑定等)均适用于此组件。
用法
内部结构
| 字段 | CSS 类 | 描述 |
|---|---|---|
textField |
.__tag-field_text-field__ |
底层带有语法高亮格式化器的 TextField。 |
值绑定
TagField 继承自 BindableUIElement<Tag>:
详细信息请参阅 数据绑定。
字段
| 名称 | 类型 | 访问权限 | 描述 |
|---|---|---|---|
textField |
TextField |
public final |
带有 NBT 语法高亮的内部文本输入框。 |
value |
Tag |
private (getter) |
当前 NBT 值(为空时为 EndTag.INSTANCE)。 |
方法
| 方法 | 返回值 | 描述 |
|---|---|---|
setValue(Tag, boolean) |
TagField |
设置 NBT 值;第二个参数控制是否触发通知。 |
setTagValidator(Predicate<Tag>) |
TagField |
设置自定义验证器。无效输入将以错误颜色显示。 |
setTagResponder(Consumer<Tag>) |
TagField |
注册一个监听器,在每次有效更改时调用。 |
setCompoundTagOnly() |
TagField |
仅接受 CompoundTag。 |
setListOnly() |
TagField |
仅接受 ListTag。 |
setAny() |
TagField |
接受任意 NBT 标签类型(默认)。 |