cocos2dJS的EditBox,失去焦点文字大小改变

var password = new cc.EditBox( cc.size(passwordBg.width - passwordTip.width, textSize), null); password.setAnchorPoint(0, 0.5); password.setPosition(passwordTip.x + passwordTip.width, passwordBg.height / 2); password.setFont(H5G.FONT, textSize); password.setFontColor(textColor); password.setInputMode(cc.EDITBOX_INPUT_MODE_SINGLE_LINE); password.setInputFlag(cc.EDITBOX_INPUT_FLAG_PASSWORD); password.setMaxLength(16);

正常输入的时候是对的

当点击其他位置,使EditBox失去焦点后,就变成了这样:

求教

顶顶顶,大佬们

没有人吗,求大佬解答

C++ 的 cpp-tests 中的测试例 EditBox,失去焦点的时候也会变大。我去看看

等待大牛

/**

  • html onEnter() 时需要重新创建输入控件
    */
    public onEnter(): void {
    super.onEnter();
    if (isNative) return;

    this._editBoxInputMode = -1;
    this.setInputMode(this._inputMode);// 重新创建输入框
    this.setInputFlag(this._inputFlag);// 更新 _edTxt.style.textTransform 自动大写的问题
    this._renderCmd._edTxt.style.fontFamily = this._font;// 更新输入框的字体和字号
    this._renderCmd._edTxt.style.fontSize = this._size + ‘px’;

    if (isMobile) {
    let text: string = this.getString();
    this.setString(Math.random().toString());// 内容有改变才能正确渲染,不然 y 会显示不正确
    this.setString(text);
    }
    }

C++层输入状态和失去焦点状态实现方式不一样。输入状态是调的平台API进行控制的,显示的黑点是平台的黑点,离开焦点状态,是用 Label 渲染的字符 \u25CF,引擎传给平台的和Label的字体大小是一样的。

平台API显示的小,应该是平台的特殊处理,失去焦点后显示的黑点大小和传入的字体大小一致,你将字体设置小一点,黑点也就小了,同时输入时光标竖线也会变小,可能看起来会不太舒服,暂时没有什么好的解决办法 @847187384

了解了!现在没什么好办法了。。我把/u25CF替换成了特殊字符 ••••••••••••
现在效果看起来还可以。。

1赞