新しく作成したTextField
にプログラムでフォーカスを渡そうとしていますが、何らかの理由でsetSelection
とsetFocus
が機能しません。TextFieldでフォーカスと選択を設定するにはどうすればよいですか?
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="_init()">
<mx:Button click="{tf.setSelection(1,2)}" />
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
public var tf:TextField
private function _init():void{
tf = new TextField();
tf.text = "abcdefghijk";
tf.type = TextFieldType.INPUT;
tf.autoSize = TextFieldAutoSize.LEFT;
var ui:UIComponent = new UIComponent();
ui.addChild(tf);
addChild(ui);
tf.setSelection(0,1);
ui.setFocus();
ui.addEventListener(MouseEvent.MOUSE_DOWN, function():void{
tf.setSelection(0,3);
});
}
]]>
</mx:Script>
</mx:Application>
何もしないだけsetSelection
がMOUSE_DOWN
に0,3いずれかになります。たとえば、以下の私のテストコードを参照してください。私はこれがマウスのクリックによるフォーカスを受けているテキストフィールドと何か関係があると思っていますが、私の人生にとってこれを手動で行う方法を理解することはできません。
TextInputクラスのサイズが大きすぎるか、単純なもの(例えば、自動サイズ変更)が難しいと感じているので、TextFieldを使用することにしました。ホワイトボードで使用するためのテキスト領域やラベルを作成しようとしているので、私は仕事のための適切なクラスを選択することが重要です。そうしないと、将来の単純なものがはるかに難しくなる可能性があります。 – cammil