在Flex 3中禁用文本字段的滚动特性

问题描述

| 在Mac OS X,Safari 4.0.2浏览器中,文本字段内容是可滚动的。如何停止文本字段的滚动属性? 我已经明确提到了它的宽度,但没有提到高度。文本应在可用区域内相应地调整大小。请任何人提供解决方案。     

解决方法

过去,我已将此AutoResizeTextArea组件用于此要求。只需将
autoResize
属性设置为
true
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<mx:TextArea xmlns:mx=\"http://www.adobe.com/2006/mxml\">
     <mx:Script>
          <![CDATA[

               // auto resize setting
               private var _autoResizable:Boolean = false;

               // getter
               [Bindable(event=\"changeAutoResize\")]
               public function get autoResize():Boolean
               {
                    return _autoResizable;
               }

               // setter
               public function set autoResize(b:Boolean):void
               {
                    _autoResizable = b;
                    // if the text field component is created
                    // and is auto resizable
                    // we call the resize method
                    if (this.mx_internal::getTextField() != null && 
                         _autoResizable == true)
                         resizeTextArea();
                    // dispatch event to make the autoResize 
                    // property bindable
                    dispatchEvent(new Event(\"changeAutoResize\"));
               }

               // setter override
               override public function set text(value:String):void
               {
                    // calling super method 
                    super.text = value;
                    // if is auto resizable we call 
                    // the resize method
                    if (_autoResizable)
                         resizeTextArea();
               }

               // resize function for the text area
               private function resizeTextArea():void
               {
                    // initial height value
                    // if set to 0 scroll bars will 
                    // appear to the resized text area 
                    var totalHeight:uint = 10;
                    // validating the object
                    this.validateNow();
                    // find the total number of text lines 
                    // in the text area
                    var noOfLines:int = this.mx_internal::getTextField().numLines;
                    // iterating through all lines of 
                    // text in the text area
                    for (var i:int = 0; i < noOfLines; i++) 
                    {
                         // getting the height of one text line
                         var textLineHeight:int = 
                             this.mx_internal::getTextField().getLineMetrics(i).height;
                         // adding the height to the total height
                         totalHeight += textLineHeight;
                    }
                    // setting the new calculated height
                    this.height = totalHeight;
               }
          ]]>
     </mx:Script>
</mx:TextArea>
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...