TextArea限制输入行数

     某日接到用户在界面中的一个textArea中限制输入,他的要求是不给出具体允许输入的字符数(不关心字数),在固定宽高的textArea中,只允许输入3行。flexSDK3.3中只对具体最大字符数(maxChars)提供了限制,而对于行数的限制,并未支持。苦思冥想,最终找到解决方案,见下方代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:Script>
        <![CDATA[
         private var oldStr:String;  //用于限制输入3行
           
           private function textChangeHandler():void {
    var tf:TextField = myTextArea.mx_internal::getTextField()
    var numLines:uint = tf.numLines;
                if(numLines > 3){
                 myTextArea.text = oldStr;
                }
                oldStr = myTextArea.text;
   }
        ]]>
    </mx:Script>
        <mx:TextArea id="myTextArea"
                  wordWrap="true"
                  width="100"
                  height="150"
                  leading="20"
                  verticalScrollPolicy="off"
                  change="textChangeHandler()">
     </mx:TextArea>
</mx:Application>

到此功能已经实现,不过在这个过程中,无意中发现了flex之TextArea的一个bug,即你设置wordWrap为true后,假若你在一行中一直空格到底,TextArea是不会自动换行的,他会一直空格下去,你按向左的方向键,这时候光标右会慢慢回来。如有疑问,你可以稍微尝试着玩一下

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值