Ich brauchte das gleiche, um den Inhalt eines Textfelds auszuwählen, wenn es den Fokus erhält.
Ich habe versucht:
A) einfach nach einem Focus auswählen. Dies scheint nicht zu funktionieren (meine Vermutung ist, dass FocusEvents ausgelöst werden, bevor der Mausklick verarbeitet wird, was wiederum die Auswahl rückgängig macht).
B) Auswahl bei jedem Mausklick. Das funktioniert, aber das ist sehr ärgerlich für einen Benutzer, der später nur einen Teil des Textes auswählen möchte, da dieser Versuch immer dazu führt, dass alle Inhalte ausgewählt werden.
Die folgende Abhilfe scheint allerdings zu arbeiten:
myTextField.addEventListener(MouseEvent.CLICK, selectAllOnce);
function selectAllOnce(e:MouseEvent) {
e.target.removeEventListener(MouseEvent.CLICK, selectAllOnce);
e.target.addEventListener(FocusEvent.FOCUS_OUT, addSelectListener);
selectAll(e);
}
function addSelectListener(e:FocusEvent) {
e.target.addEventListener(MouseEvent.CLICK, selectAllOnce);
e.target.removeEventListener(FocusEvent.FOCUS_OUT, addSelectListener);
}
function selectAll(e:Event) {
e.target.setSelection(0, e.target.getLineLength(0));
}
Hoffnung, das hilft. Ich persönlich denke, es wäre am logischsten, wenn Adobe für das TextField-Objekt einfach eine Option hinzufügen würde.