使用Alloy,我有一个文本字段,并且当用户输入超过24个字符时,希望缩小字体大小,以便在文本字段中不会切断任何内容。
views.xml:
<TextField id="ccHolder" class="fieldInput" onChange="makeFontSmaller"><Label id="cvcIcon" class="fieldIcons"/> </TextField>
controller.js:
function makeFontSmaller(e){
console.log("font size " + e.source.font.fontSize); //outputs "14dp"
if (e.source.value.length > 20) {
e.source.font.fontSize = "12dp"; //no effect
//$.ccHolder.value.setFont("12dp"); /no effect
}
}
有什么想法吗?
答案 0 :(得分:2)
如果您只想更改字体,这很有效。
e.source.font = {
fontSize : 14
};
答案 1 :(得分:1)
[已编辑以更正字体对象]
在我的第一个回答编辑中,我天真地希望font.fontSize可以是一个合法的属性,但显然不是。
然后,在Prashant的评论之后,我成功测试了下面的(更详细)解决方案,该解决方案使用了applyProperties()
function makeFontSmaller(e){
if (e.source.value.length > 20) {
e.source.applyProperties({font: {fontSize: "12dp"}});
}
}