Ich versuche, den Fokus programmgesteuert auf eine neu erstellte TextField
übergeben, aber aus irgendeinem Grund setSelection
und setFocus
funktionieren nicht. Zum Beispiel finden Sie in meinem Test-Code unten:Wie setze ich Fokus und Auswahl auf ein 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>
Die einzige setSelection
, die alles tut, ist die 0,3 eins auf MOUSE_DOWN
. Ich nehme an, das alles hat etwas mit dem Textfeld zu tun, das den Fokus mit dem Mausklick erhält, aber ich kann nicht für das Leben von mir herausfinden, wie man das manuell macht.
Ich fühle mich wie die TextInput-Klasse möglicherweise zu sperrig oder schwierig, einfache Dinge mit (z. B. automatische Größenanpassung) zu tun, deshalb habe ich mich entschieden, TextField zu verwenden. Ich versuche, Textbereiche/Beschriftungen für die Verwendung in einem Whiteboard zu erstellen, daher ist es wichtig, dass ich die richtige Klasse für den Job auswähle, da sonst einfache Dinge in Zukunft viel schwieriger werden. – cammil