タッチには、ニーズに合わせて使用できる素晴らしい機能があります。setName() の使用法について説明した最初の部分であるClass System descriptionを見てください。
要するに、すべての構成エントリには、すべてのコードベースで使用される対応する apply() および update() 関数があります
あなたのケースでは編集して、新しいクラスを定義する必要があります。
Ext.define('MyApp.ux.field.PhoneText', {
extend: 'Ext.field.Text',
xtype: 'phonetextfield',
applyValue: function(value) {
var ext = getExt(value),
partOne = getPartOne(value),
partTwo = getPartTwo(value);
return Ext.String.format('(%s) %s-%s', ext, partOne, partTwo)
}
}
入力値をフォーマットに変換する独自のバージョンの applyValue 関数を使用するだけです。
パネル定義では、'textfield' ではなく xtype: 'phonetextfield' を使用し、requires: ['MyApp.ux.field.PhoneText'] も追加する必要があることに注意してください。