动态调整文本字段宽度到内容
Dynamically adjust Textfield width to Content
Qooxdoo 有没有办法自动调整 qx.ui.form.TextField
的宽度以适应其内容?
这意味着如果有人在文本字段中键入它应该增长,反之亦然。
这是 Qooxdoo playground 中的一个 example 监听输入的更新,使用 canvas 计算文本的长度并调整 textfield
的宽度。
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;
}
Qooxdoo 有没有办法自动调整 qx.ui.form.TextField
的宽度以适应其内容?
这意味着如果有人在文本字段中键入它应该增长,反之亦然。
这是 Qooxdoo playground 中的一个 example 监听输入的更新,使用 canvas 计算文本的长度并调整 textfield
的宽度。
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;
}