     //--------------------------------------------------------------------------
     
     private var textDisplayGroup:VGroup;
-
+    
     private var _isIOS:Boolean;
+    
+    private var invalidateCaretPosition:Boolean = true;
     
     /**
      *  @private

package spark.skins.mobile 
{

import flash.display.Graphics;
import flash.events.Event;
import flash.events.FocusEvent;
import flash.system.Capabilities;

import mx.core.DPIClassification;
import mx.core.mx_internal;
import mx.events.FlexEvent;

import spark.components.Group;
import spark.components.Scroller;
import spark.components.TextArea;
import spark.components.VGroup;

        textDisplayGroup.paddingTop = paddingTop;
        textDisplayGroup.paddingBottom = paddingBottom;
        
        var unscaledTextWidth:Number = unscaledWidth - paddingLeft - paddingRight;
        var unscaledTextHeight:Number = unscaledHeight - paddingTop - paddingBottom;
        var textHeight:Number = unscaledTextHeight;
        
        // set width first to measure height correctly
        textDisplay.commitStyles();
        textDisplay.width = unscaledTextWidth;
        
        // TextField height should match its content or the TextArea bounds at minimum
        // iOS special case to prevent Flex Scroller scrolling when editable
        if (!_isIOS || !textDisplay.editable)
            textHeight = Math.max(textDisplay.measuredTextSize.y, textHeight);
        
        // FIXME (jasonsj): iOS native scroll bar appears even when explictHeight
        //                  is not specified. Focus-in is jumpy.
        
        if (promptDisplay)
        {
            promptDisplay.commitStyles();
            setElementSize(promptDisplay, unscaledTextWidth, textHeight);
            setElementPosition(promptDisplay, paddingLeft, paddingTop);
            
            // no need to update textDisplay if promptDisplay is present
            return;
        }
        
        // TextField will auto scroll to a new line before we can resize it to
        // fit the new text. Adjust scrollV so that all text is visible.
        // FIXME (jasonsj): is this needed for iOS?
        if (textDisplay.scrollV > 1)
            textDisplay.scrollV = 1;
        
        // grab old measured textDisplay height before resizing it
        var oldPreferredTextHeight:Number = getElementPreferredHeight(textDisplay);
