在Mac OS X,Safari 4.0.2浏览器中,文本字段内容可滚动。如何停止文本字段的滚动属性?
我已经明确提到它的宽度而不是高度。应在可用区域内相应地重新调整文本大小。请任何人提供解决方案。
答案 0 :(得分:0)
我过去曾使用此AutoResizeTextArea component来满足此要求。只需将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>