06
Aug
08

Toggling whether a user can select text in a TextArea control in Flex

The following examples show how you can control whether a user can select the text in a Flex TextArea control by setting the selectable property in MXML and ActionScript.

Full code after the jump.

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/08/06/toggling-whether-a-user-can-select-text-in-a-textarea-control-in-flex/ -->
<mx:Application name="TextArea_selectable_test"
        xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:ApplicationControlBar dock="true">
        <mx:Form styleName="plain">
            <mx:FormItem label="selectable:">
                <mx:CheckBox id="checkBox"
                        selected="true" />
            </mx:FormItem>
        </mx:Form>
    </mx:ApplicationControlBar>

    <mx:TextArea id="textArea"
            selectable="{checkBox.selected}"
            text="The quick brown fox jumped over the lazy dog." />

</mx:Application>

View source is enabled in the following example.

You can also set the selectable property using ActionScript, as seen in the following example:

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/08/06/toggling-whether-a-user-can-select-text-in-a-textarea-control-in-flex/ -->
<mx:Application name="TextArea_selectable_test"
        xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:Script>
        <![CDATA[
            private function checkBox_change(evt:Event):void {
                textArea.selectable = checkBox.selected;
            }
        ]]>
    </mx:Script>

    <mx:ApplicationControlBar dock="true">
        <mx:Form styleName="plain">
            <mx:FormItem label="selectable:">
                <mx:CheckBox id="checkBox"
                        selected="true"
                        change="checkBox_change(event);" />
            </mx:FormItem>
        </mx:Form>
    </mx:ApplicationControlBar>

    <mx:TextArea id="textArea"
            text="The quick brown fox jumped over the lazy dog." />

</mx:Application>

2 Responses to “Toggling whether a user can select text in a TextArea control in Flex”


  1. 1 adam Aug 15th, 2008 at 1:34 pm

    That’s great. But how can i make all the content of a flash/flex page selectable? I hate that you can’t simply select text and do a simple ctrl+c or right click copy. Please help. Thanks for this site and all the great tips.

  2. 2 Stuart Ward Sep 8th, 2008 at 10:30 am

    I agree with Adam. It is very frustrating and disappointing to users that expect to be able to simply click/drag to select text (especially in a datagrid).

    I posted a question in the Flexcoders forum about how to select text in a datagrid by the standard click/drag and the answer was… that there is no property or control that will allow this. You would have to try to create some custom code to emulate it (if it’s possible at all).

    Stuart

Leave a Reply

This blog is terrible at eating HTML tags. If you plan on posting code/XML, please escape your "<" characters as "&lt;" and your ">" characters as "&gt;".




Badge Farm

  • Powered by Redoable 1.2
  • Cornify
  • Feeds burnt by Feedburner
  • Feed