That is in the focusIn handler.
<mx:TextInput id="ti" focusIn="removeSelection()" />
<mx:Script>
private function removeSelection():void
{
ti.selectionBeginIndex = 0;
ti.selectionEndIndex = 0;
}
</mx:Script>
On 5/1/07, Alex Harui <[EMAIL PROTECTED]> wrote:
>
>
>
>
> selectionBeginIndex = selectionEndIndex = 0
>
>
>
> ________________________________
>
>
> From: [email protected] [mailto:[EMAIL PROTECTED] On
> Behalf Of barry.beattie
> Sent: Tuesday, May 01, 2007 10:16 AM
> To: [email protected]
> Subject: [flexcoders] when is setFocus() not?
>
>
>
>
>
>
> 1) Q: have I picked the wrong method and setFocus() is NOT what I want
> - or - do I have to construct exactly what I want piece by piece?
>
> [full code below]... I've got a TextInput that updates the underlying
> XML when it loses focus (which it does OK). When the buttons are used,
> it returns the focus back to the TextInput (which is sort-of does).
> the bit I don't like is previously entered value itself have the
> focus, ready to be wiped with an accidental keystroke.
>
> What I really want is to place the cursor either in front or back of
> the value so the user has to use the delete or backspace key (or
> mouse) to delete/replace the value. I prefer at the back since plenty
> of Mac users have forgotten "fn-delete" deletes forwards, not back.
>
> do I have to do this piece by piece or is there something better than
> setFocus(). doing this for a couple of controls is OK but I've got
> lots to do in reality.
>
> 2) Q: is there any work being done to simplify setting of tab-orders,
> shortcut keys and key stroke listeners? I've got (many) dozens of form
> elements in each view driven off business logic - doing it before in
> Javascript was a right royal pain, I was hoping Flex had it easier.
>
> the end users are data entry ppl who rarely use mouses (mice?) and are
> very fussy about how the UI performs for data entry (focus, tab
> order, short-cut keys, etc)
>
> any suggestions to make my life easier?
> thanx
>
> [watch out for text wrap and broken lines]
> ------------------------------------
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
> layout="absolute"
> applicationComplete="init()"
> >
> <!-- NOTE: this just something thrown together to illustrate the
> problem -->
> <mx:Script>
> <![CDATA[
> import mx.effects.Blur;
> [Bindable]
> private var cursor:int = 0;
> private var firstIndex:int = 0;
> private var lastIndex:int = 0;
> [Bindable]
> public var questionaire:XML;
>
> private function init():void{
> questionaire = <questionaire>
> <question category="Brielly" id="71" weight="2" rating=""
> text="Unit Test Frameworks" />
> <question category="Brielly" id="72" weight="1" rating=""
> text="The Cathedral & the Bazaar" />
> <question category="Maddison" id="10" weight="1"
> rating="" text="Design Patterns" />
> <question category="Maddison" id="11" weight="1"
> rating="" text="The Pragmatic Programmer" />
> <question category="Maddison" id="12" weight="3"
> rating="" text="Refactoring to Patterns" />
> <question category="Maddison" id="15" weight="2"
> rating="" text="Test Driven Development" />
> <question category="O'Reilly" id="13" weight="1"
> rating="" text="Agile Development" />
> </questionaire>;
> lastIndex = questionaire.children().length()-1; //
> zero-based index/arrays!
> first();
> }
>
> private function first():void{
> cursor = 0;
> btnFirst.enabled=false;
> btnBack.enabled=false;
> if(!btnNext.enabled){btnNext.enabled=true}
> if(!btnLast.enabled){btnLast.enabled=true}
> }
>
> private function back():void{
> cursor--;
> if (cursor == firstIndex){
> btnFirst.enabled=false;
> btnBack.enabled=false;
> }
> if(!btnNext.enabled){btnNext.enabled=true}
> if(!btnLast.enabled){btnLast.enabled=true}
> }
>
> private function next():void{
> cursor++;
> if (cursor == lastIndex){
> btnNext.enabled=false;
> btnLast.enabled=false;
> }
> if(!btnFirst.enabled){btnFirst.enabled=true}
> if(!btnBack.enabled){btnBack.enabled=true}
> }
>
> private function last():void{
> cursor = lastIndex;
> btnNext.enabled=false;
> btnLast.enabled=false;
> if(!btnFirst.enabled){btnFirst.enabled=true}
> if(!btnBack.enabled){btnBack.enabled=true}
> }
>
> private function onRatingChange(event:Event) :void{
> [EMAIL PROTECTED] = event.currentTarget.text;
> // HERE: focus not quite right <<<<<<<<<<<<<<<<<<<<<<<<<<
> event.currentTarget.setFocus();
> }
> ]]>
> </mx:Script>
> <mx:VBox x="197" y="131" height="100%" width="100%">
> <mx:HBox width="100%">
> <mx:TextArea width="100%" height="100%" id="questionText"
> text="[EMAIL PROTECTED]"/>
> </mx:HBox>
> <mx:HBox width="100%">
> <mx:Button label="|<" id="btnFirst" click="first()" />
> <mx:Button label="<<" id="btnBack" click="back()"/>
> <mx:Text text="{cursor}"/>
> <mx:TextInput id="txtWeight"
> text="[EMAIL PROTECTED]"
> focusOut="onRatingChange( event )"/>
> <mx:Button label=">>" id="btnNext" click="next()"/>
> <mx:Button label=">|" id="btnLast" click="last()"/>
> </mx:HBox>
> </mx:VBox>
>
> </mx:Application>
>
> -----------------------------------
>
>