引擎版本:2.4.3
项目中出现了一个需求,在输入的时候判定文字的字符数量,然后进行数量控制
所以我用到了 ‘ text-changed ’这个属性,进行输入时的监听。
代码如下
OnEditboxChanged() {
let msg = this.nickName.string;
let msg2 = '';
let _length = 0;
let count = 0;
for (let index = 0; index < msg.length; index++) {
if (PubFunction.instance.IsChinese(msg[index])) {
_length = _length + 3;
count++;
}
else {
_length++;
count++;
}
if (_length > 24) {
this.nickName.string = msg2;
continue;
}
else {
msg2 = msg2 + msg[index];
_length++;
}
}
this.nickName.string = msg2;
//this.nickName.maxLength = count;
}
当 输入的字符时中文时,该字符算为3个字节,总字节不超过24,所以我试了两种方法,更改editbox.string的值,还有更改editbox.maxlength的值,结果都是在激活时无法对显示的文本进行控制,只有在离开激活状态的时候,文本发生了更改。使得效果如同 editing-did-ended 一般。我虽然有其他的解决方法进行处理,但是这个问题也确实存在,希望引擎组大佬们进行检测。

