JUCE常规控件之TextEditor详解

控件是GUI人机交互的重要部分,如无特别说明,以下控件全部继承自Component类。即:各类控件天然拥有Component类的一切属性和行为。几乎所有的交互式控件均可调用addListener()绑定本类对象所对应的捕获器(监听者),或调用setColour()设置本组件各个成分的颜色。同样,每个控件都可设置自己的LookAndFeel(外观及样式,包括字型、字体等。详情可参阅LookAndFeel一节)。

TextEditor
TextEditor是一个功能强大的文本编辑器,既可作为大面积的文本显示和输入(只读或可编辑),也可设置为单行文本框或密码输入框,并自带右键菜单。TextEditor所产生的消息,可由嵌套在本类中的抽象基类TextEditor::Listener所捕获和处理。通常,声明和使用TextEditor的内容组件类继承该抽象基类,并在构造函数中创建TextEditor对象之后,该对象addListener (this),从而可以捕获并处理TextEditor所产生的消息。Label类的getTextEditor()函数,返回值也是本类的对象。

TextEditor类的重要成员函数
 TextEditor (本组件的名称, 密码字符) 构造函数
 setMultiLine () 多行模式还是单行模式
 isMultiLine () 如果为多行模式, 则返回true.
 setReturnKeyStartsNewLine () 回车键是否为换行
 getReturnKeyStartsNewLine () 检测回车键是否可换行
 setReadOnly () 设置只读/可编辑模式
 isReadOnly () 如果为只读模式, 则返回true
 setCaretVisible () 设置是否显示插字符光标
 setScrollbarsShown () 开启或禁用垂直滚动条
 setPasswordCharacter () 设置密码模式下,文本内容所显示的字符
 setPopupMenuEnabled () 是否启用右键菜单
 setFont () 设置随后所添加的文本的字体
 applyFontToAllText () 设置所有文本的字体
 getFont () 返回当前使用的字体
 setSelectAllWhenFocused () 点击本组件后是否自动全选
 setInputRestrictions () 限制能够输入的字符
 setTextToShowWhenEmpty () 编辑区域为空白状态时所显示的文本
 setScrollBarThickness () 设置滚动条的宽度
 addListener () 绑定TextEditor::Listener捕获器
 removeListener () 移除所绑定的捕获器.
 getText () 返回编辑器的完整内容
 getTextInRange () 返回某个范围的内容
 isEmpty () 如果编辑器中无字符,则返回true
 setText () 设置编辑器的完整内容
 getTextValue () 将当前文本返回为Value对象
 insertTextAtCaret () 将给出的文本插入当前光标处(即插字符处)
 clear () 清除所有内容
 cut () 剪切当前所选范围的内容
 copy () 复制当前所选范围的内容
 paste () 将剪贴板中的内容插入到当前光标处.
 getCaretPosition () 返回插字符当前所处的索引位置
 setCaretPosition () 将插字符移动到给定索引处
 moveCaretToEnd () 将插字符移动到文本的末尾
 scrollEditorToPositionCaret () 翻屏时,将插字符置于给定位置
 getCaretRectangle () 获取插字符的形状
 setHighlightedRegion () 选择一个范围
 getHighlightedRegion () 返回所选的范围
 getHighlightedText () 返回当前所选的文本
 getTextIndexAt () 返回给定坐标处的字符索引
 getTotalNumChars () 计算文本的字符总数
 getTextWidth () 返回当前布局下文本的最大宽度
 getTextHeight () 返回当前布局下文本的最大高度
 setIndents () 改变编辑器和组件边框的间距, 默认为4像素
 setBorder () 设置边框大小
 getBorder () 返回边框大小
 setScrollToShowCursor () 自动滚屏到插字符所在位置
 setTemporaryUnderlining () 临时设置一些下划线
 addPopupMenuItems () 右键菜单中添加菜单项,派生类可重写
 performPopupMenuAction () 弹出式菜单的菜单项所执行的代码,子类可重写

小技巧:

// 设置为:不限长度,仅限于输入数字、负号和小数点
textEditor->setInputRestrictions (0, "-0123456789.");