备忘下:
在使用TextFormat类来对TextField文本域进行格式化处理的时候,经常用到两个方法,一个是通过通过TextField类的实例方法setTextFormat()进行设置,另外一个是通过TextField类的属性defaultTextFormat进行设置。
他们的区别主要在两个地方,
1,setTextFormat()方法不适用于后来分配的文本,setTextFormat()方法只可以在文本已经被添加到文本域之后用于格式化一个文本域,也就是必须先给TextField的实例属性text分配值,才能进行格式化;如果运用了setTextFormat()格式化文本之后,text属性的值在被重新分配(重新赋值),那么,关联于原来文本域的任何自定义格式将被移除。然而,如果通过设置TextField的属性defaultTextFormat(文本域默认格式)来进行格式化,则需要先进行设置默认格式,即为defaultTextFormat赋值,再进行TextField类的text属性复制,在此之后的text属性重新赋值不会移除原来defaultTextFormat定义的格式。比如下面两个实例
在flash中新建一个AS3的fla文档,在帧上编写代码:
(第一部分代码)
var myText:TextField=new TextField();
myText.width=200;
myText.wordWrap=true;
var myTextFormat:TextFormat=new TextFormat();
myTextFormat.bold=true;
myTextFormat.size=18;
myText.text="Hellow World";//注意位置
myText.setTextFormat(myTextFormat);//注意位置
myText.appendText(" Hi World");
addChild(myText);
在上面的代码中,注意红色标记的两行代码的位置,TextField的实例myText成功格式化为18像素的粗体,如果调整一下位置,比如
(第二部分代码)
var myText:TextField=new TextField();
myText.width=200;
myText.wordWrap=true;
var myTextFormat:TextFormat=new TextFormat();
myTextFormat.bold=true;
myTextFormat.size=18;
myText.setTextFormat(myTextFormat);//注意位置
myText.text="Hellow World";//注意位置
myText.appendText(" Hi World");
addChild(myText);
此时再测试,则没有被格式化。通过setTextFormat()方法成功格式化的TextField实例,如果text属性重新被赋值,则原来相关的属性将被移除,比如把第一部分代码中myText.appendText(" Hi World");改成myText.text=" Hi World";比如
var myText:TextField=new TextField();
myText.width=200;
myText.wordWrap=true;
var myTextFormat:TextFormat=new TextFormat();
myTextFormat.bold=true;
myTextFormat.size=18;
myText.text="Hellow World";//注意位置
myText.setTextFormat(myTextFormat);//注意位置
myText.text=(" Hi World"); //重新赋值,将取消原有的格式
addChild(myText);
如果上述代码改成用默认文本格式进行处理,则是先进行defaultTextFormat复制,再进行TextField的属性text赋值,以后重新赋值不会改变格式。
var myText:TextField=new TextField();
myText.width=200;
myText.wordWrap=true;
var myTextFormat:TextFormat=new TextFormat();
myTextFormat.bold=true;
myTextFormat.size=18;
//myText.setTextFormat(myTextFormat);
myText.defaultTextFormat=myTextFormat; //先进行格式化
myText.text=" Hi World");//再进行text属性赋值
addChild(myText);
2,setTextFormat()方法可以对一段文本进行多种格式的设置,而defaultTextFormat只能对文本进行一种格式设置,但是,可以结合setTextFormat(),defaultTextFormat使用,对文本进行多样式控制,但是还是要遵循那个原则,即先设置defaultTextFormat属性,再为text赋值,再使用setTextFormat()格式化,如果最后重新为text重新赋值,则setTextFormat()设置的格式将被移除,defaultTextFormat设置的格式将被保存!
var myText:TextField=new TextField();
myText.width=200;
myText.wordWrap=true;
var myTextFormat:TextFormat=new TextFormat();
myTextFormat.bold=true;
myTextFormat.size=18;
var myNewTextFormat:TextFormat=new TextFormat();
myNewTextFormat.color=0x6600CC;
var myNewTextFormat2:TextFormat=new TextFormat();
myNewTextFormat2.color=0xFF0000;
myNewTextFormat2.size=25;
//注意下面红色部分的位置关系
myText.defaultTextFormat=myTextFormat;
myText.text="Hellow World. How are you ! ";
myText.setTextFormat(myNewTextFormat,0,6);
myText.setTextFormat(myNewTextFormat2,6,12);
addChild(myText);
测试结果图片为
相关推荐
Java组件是Java编程中不可或缺的一部分,特别是在开发图形用户界面(GUI)时。这些组件构成了用户与应用程序交互的...通过分析和运行这些示例,你可以更好地理解如何在实际项目中运用这些组件,提升你的Java编程能力。
在GUI编程中,`TextField`是一个非常常见的元素,它允许用户输入和编辑一行文本。以下是对`TextField`类的详细解释: ### 1. 构造方法 `TextField`类提供了几个构造方法来初始化组件,每种方法都有不同的用途: -...
1. **TextField的基础知识**:首先,需要了解TextField的基本属性和方法,如text属性用于设置和获取文本,width和height用于控制尺寸,selectable控制是否可选中,autoSize控制文本自动调整大小等。 2. **图文混排...
在给定的描述中,我们看到开发者遇到了一个问题:默认情况下,ExtJs5的`textfield`组件有明显的边框,但通过添加特定的配置项和CSS样式,可以成功移除这些边框。 首先,让我们详细了解一下如何在ExtJs5中配置`...
总之,`UITextField`是iOS开发中的核心组件之一,通过灵活运用其属性和方法,我们可以创建出符合用户需求且美观的输入界面。同时,了解如何自定义占位符和图标不仅可以提高界面的可读性和吸引力,也能提升应用的整体...
在布局时,可以将TextField的高度约束设置为可变,然后在输入代理方法中更新约束值,以反映文本内容的变化。 总的来说,这个话题涉及的知识点包括: 1. iOS开发中的UITextField基本使用和限制。 2. 第三方库...
在实际应用中,开发者会结合Auto Layout进行布局,并可能使用更多的属性和方法来实现更复杂的功能,如自定义字体、边框、阴影等。通过不断的实践和学习,开发者可以熟练掌握这些基础控件,从而构建出功能丰富的iOS...
在IT行业中,尤其是在UI设计和开发领域,TextField是常见的用户输入组件,用于接收用户的文本输入。在Android或iOS等移动操作系统,以及Web开发中的HTML5等技术中,TextField都有着广泛的应用。本文将深入探讨如何...
在iOS开发中,`textField` 是一个非常常见的控件,用于接收用户输入的文字信息。在很多情况下,我们可能需要在用户交互时管理键盘的显示和隐藏,以优化用户体验。在这个"textField的一个简单例子"中,我们将探讨如何...
在iOS和Android应用开发中,`TextField`(在iOS中称为`UITextField`,在Android中称为`EditText`)是用户输入文本的基本组件。本主题将深入探讨如何自定义`TextField`,以满足特定的设计和功能需求,从而提高用户...
然而,`TextField`是Material Design组件库中的新成员,它提供了更丰富的样式和行为选项,使其成为多行输入的理想选择。 要实现`TextField`的多行输入,我们需要设置`maxLines`属性。这个属性定义了文本字段可以...
通过使用`TextField-InputView`,开发者可以在iOS应用中实现更加灵活和个性化的用户输入界面,提高应用的交互性和实用性。在实际开发中,我们可以结合项目的源码,了解其设计理念和实现方式,以便更好地应用到自己的...
本篇文章将详细探讨如何手工创建`UITextField`,包括其主要属性和键盘回调方法。 首先,创建`UITextField`的基本步骤如下: 1. **实例化**: 在代码中,我们可以通过调用`UITextField`的初始化方法来创建一个实例。...
"ios keyword 自适应 textField 高度"这一话题,正是关注如何在故事板(Storyboard)中巧妙地设置背景图片以及管理多个UITextField的高度动态变化。 首先,让我们深入理解UITextField的基本属性和行为。UITextField是...
`TextField`类提供了一些重要的属性和方法,如: - **`getText()`**:获取`TextField`中的文本内容。 - **`setText(String text)`**:设置`TextField`中的文本内容。 - **`setColumns(int columns)`**:动态更改`...
在QML(Qt Quick)中,`TextField`是用于用户输入文本的基本组件,而`Completer`则是一种增强用户体验的功能,它可以提供输入建议,帮助用户快速完成输入。本项目"QML-TextField-Completer.zip"显然是一个关于如何在...
总结来说,解决`iOS`中`textField`左边图片与光标距离问题的关键在于理解和利用`leftView`、`leftViewRectForBounds:`、`textEdgeInsets`这三个属性。通过调整它们,我们可以精确控制`textField`的视觉效果,以满足...
然后,我们可以结合这个方法来实现一个自定义的textField委托方法,以限制中文输入的长度。 以下是一行代码的解决方案: ```swift func textField(_ textField: UITextField, shouldChangeCharactersIn range: ...
首先,我们需要了解`UITextField`的基本属性和方法。`UITextField`继承自`UIControl`,它有一个重要的属性`numberOfLines`,默认值为1,表示单行显示。如果想让文本在输入框内自动换行,我们需要将其设置为0或一个...
在表单中,每个TextField作为表单的一个字段,可以通过`FormPanel`的`getForm().load()`和`submit()`方法进行数据加载和提交。 6. **示例代码**: 压缩包内的"sample"文件可能包含了创建和使用TextField的示例代码...