【必现bug】【creator3.5】EditBox(输入框) 对齐有bug

这个对齐每次调好「垂直剧中」,在打开这个 Prefab, 又变成「顶部对齐」了!!!

每次调好,是指在这个prefab里调好,重新打开又不生效吗?还是说在场景里调好,然后打开prefab还是原来的值?后者是正常表现哦。

后者是正常表现?

运行时也是不正常的o哦。

  1. 一个预制体你在场景里修改了,它的数据不会影响这个预制体原本的资源的。所以打开预制体还是你修改前的数据。

  2. 如果你在场景里修改了预制体,但是没有生效,那就是bug,请问重新打开场景的时候,你对prefab的修改还在吗?需要确认是数据没保存到场景中,还是数据保存在场景中了,但是加载有问题。

image

以上是EditBox(输入框)下的2个文本节点:

  1. 我每次把2个文本Label节点垂直对齐模式修改成「剧中」,下次再打开又变成了「顶部」对齐。所以你说的,我修改前的数据,我觉得应该还是「剧中」才对。

2.每次在此打开prefab,以上2个文本节点,垂直都变成了「顶部」对齐了。我认为应该每次都应该保存下来,或者保存到meta文件里,但是并没有,包括运行时,这2个节点垂直对齐也是「顶部对齐」。

建议:
如果你方便,可以拖一个RichText看一下,我相信这个是必现的,也很容易复现。

我一直说 RichText ,我说错了!

是输入框 EditBox(输入框)

我也遇到这个问题了 修改Label的width,改成270 保存数据后切换预制体再切回来 这个size又变回298了
image

后来我又新建了一个EditBox,
这个问题找到具体点了:

上图,用 ANY 就不行,Single_line 可以!

Editbox的子节点,有一些行为是在Editbox代码里控制的,所以你的修改被代码覆盖了。
引擎EditBox代码:

        if (this._inputMode === InputMode.ANY) {
            placeholderLabel.verticalAlign = VerticalTextAlignment.TOP;
            placeholderLabel.enableWrapText = true;
        } else {
            placeholderLabel.enableWrapText = false;
        }

所以这是对的?

为什么不允许开发者自己设置呢?

这是因为目前引擎的输入框实现还依赖原生的输入,没有自己实现输入光标
在原生的输入框上,多行输入时,输入是强制从左上角开始输入的

所以其实我们也不推荐多行输入的时候,将 Label 垂直居中,否则 Label 没办法正确展示多行输入的内容了

我不认同,我自己也碰到到需要垂直居中的情况,直说了吧,cc没有这个功能,并且2年之内都不会有这个功能,别人用不用是别人的事,你们提供了这个垂直居中的按钮但是却在any时候不对这个按钮置灰,体验非常“友好”

感谢批评,placeholder 后续会放开参数限制,不采用原生侧的实现,未输入时由引擎实现。这样就能比较正面的解决这个问题。
https://github.com/cocos/cocos-engine/pull/11303

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。