动态调整Textfield宽度为Content

时间:2017-07-05 12:43:20

标签: qooxdoo

Qooxdoo有没有办法自动调整qx.ui.form.TextField的宽度以适合其内容? 这意味着如果有人在Textfield中输入它应该增长,反之亦然。

1 个答案:

答案 0 :(得分:1)

以下是Qooxdoo游乐场中的example,用于收听输入内容的更新,使用画布计算文字的长度并调整textfield' s宽度。

var tt = new qx.ui.form.TextField();
this.getRoot().add(tt);


tt.addListener("input",function(e){
  this.setWidth(parseInt(getTextWidth(e.getData(), "12px Verdana"))+10);
},tt);

function getTextWidth(text, font) {
    var canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement("canvas"));
    var context = canvas.getContext("2d");
    context.font = font;
    var metrics = context.measureText(text);
    return metrics.width;
}