有没有办法限制数量 Flex富文本编辑器中的字符数? 我想应该有,因为它是可能的 在textarea。所以,如果我能坚持下去 富人中包含的文本区域 文本编辑器,我能够做到这一点
答案 0 :(得分:2)
我认为这在actionscript中相当容易,虽然我不确定如何在mxml中做到这一点。似乎RichTextEditor
中包含两个孩子,其中一个是TextArea
。根据文档(http://livedocs.adobe.com/flex/3/langref/mx/controls/RichTextEditor.html#propertySummary),您可以像这样访问子控件:
myRTE.toolBar2.setStyle("backgroundColor", 0xCC6633);
myRTE是文本编辑器的实例。所以我的猜测会是这样的:
myRTE.textArea.maxChars = 125;
125是您想要限制的字符数。
答案 1 :(得分:0)
我刚碰到这个。
在textArea上设置maxChars将对文本区域提供限制,但这不能代表用户可以键入的字符数。
当用户输入时,会在幕后添加标记,这会大大增加字数。
例如,如果我输入字母' a'进入RichTextEditor,我得到一个字数为142和这个htmlText:
<TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="Verdana" SIZE="10" COLOR="#0B333C" LETTERSPACING="0" KERNING="0">a</FONT></P></TEXTFORMAT>
我无法看到一种直接的方法来获得正确的maxChar开箱即用,所以我扩展了RichTextEditor并给它一个maxChar。如果maxChar&gt; 0,我添加了一个聆听者来改变&#34;并在事件处理程序中做了类似的事情:
protected function handleTextChange(event:Event) : void
{
var htmlCount:int = htmlText.length;
// if we're within limits, ensure we reset
if (htmlCount < maxChars)
{
textArea.maxChars = 0;
this.errorString = null;
}
// otherwise, produce an error string and set the component so the user
// can't keep typing.
else
{
var textCount:int = textArea.text.length;
textArea.maxChars = textCount;
var msg:String = "Maximum character count exceeded. " +
"You are using " + htmlCount + " of " + maxChars + " characters.";
this.errorString = msg;
}
}
这个想法是只在处于错误状态时才将maxChars应用于文本区域,因此用户不能输入任何其他内容,并且会提示删除一些字符。一旦我们离开错误状态,我们需要将textArea.maxChars设置为零,以便它们可以继续。