我希望能够将非样式属性应用于TextField中的文本部分。例如,字符30-45将设置为在某个方向上设置动画。
如果此字段是可编辑的,则如果以任何方式编辑文本,则字符30-45可能不再是30-45。
有人能想出一种优雅的方式来跟踪哪些角色应用了属性吗?
答案 0 :(得分:3)
我有一个类似的项目,最终扩展了TextField类以满足我的需求。以下是对要做什么的简短描述 - 我的实际代码是保密的,我担心:
text
和htmlText
将这些setter中的所有内容解析为自定义对象数组。这些对象中的每一个都包含原始文本块和适用于它们的元数据(格式,注释等)。
例如,
<span class="sometext" animation="true">Info</span>
会被翻译成这样的对象:
{ text:"Info", clazz="sometext", animation:true };
appendText
按原始文本块添加块并使用setTextFormat
在每个追加步骤后应用格式化(或执行其他必要的操作)来呈现实际文本输出。 super.text
。)selectionBeginIndex
和selectionEndIndex
处理用户输入(计算对象数组原始文本中的字符数,以找出受影响的块)。直接在容器对象中添加或替换新文本,然后使用步骤3.刷新TextField中的整个文本。text
和htmlText
的getter以返回新格式化的信息。我使用htmlText
返回一个完全修饰的xml字符串,并保留text
来访问原始文本内容,就像在通用TextField中一样。