2016-06-22 5 views
1

Alloyを使って、私はテキストフィールドを持っていて、ユーザーが24文字以上入力するとフォントサイズを小さくして、テキストフィールドで何も切り取られないようにしたいと考えています。Appceleratorでテキストフィールドのフォントサイズを動的に設定する方法は?

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 
    } 
} 

任意のアイデア?

答えて

1

を使用して、以下の(より詳細な)ソリューションを、テストしました。

e.source.font = { 
    fontSize : 14 
}; 
+0

thx!それはトリックをした – user24957

0

は私の最初の答えの編集では

[フォントオブジェクトを修正するように編集]、私は単純にfont.fontSizeは合法的財産であり得ることを期待していたが、それは明らかではありません。

はその後、のPrashantのコメントの後に、私は正常にあなただけのフォントを変更したい場合、これがうまく機能applyProperties()

function makeFontSmaller(e){ 
    if (e.source.value.length > 20) { 
     e.source.applyProperties({font: {fontSize: "12dp"}}); 
    } 
} 
+0

我々は直接font.fontSize *このようapplyPropertiesすることはできません:?我々は、*「12dp」することができます...メーカーは、私が見font.fontSize –

+0

上のエラーを示し、ありがとう、私は実際に心配しましたそれ。 –

+0

多分{font:{fontSize: "12dp"}}で...私は好奇心から試してみるだろう:) thnx again Prashant。 –

関連する問題