004-UITextField – iOS基本控件系列

0.enablesReturnKeyAutomatically

默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的。

1.borderStyle

设置边框样式,只有设置了才会显示边框样式

2.backgroundColor

设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉

3.background

设置背景

设置enable为no时,textfield的背景

4.placeholder

当输入框没有内容时, 提示内容为password

5.font

设置输入框内容的字体样式和大小

6. textColor

设置字体颜色

7. clearButtonMode

输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容

8. text

输入框中一开始就有的文字

text.text = @"一开始就在输入框的文字";

9. secureTextEntry

每输入一个字符就变成点 用来输入密码时,设置这个属性。

10. autocorrectionType

是否纠错

11. clearsOnBeginEditing

再次编辑就清空

12. textAlignment

内容对齐方式

13. contentVerticalAlignment

内容的垂直对齐方式  UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment

14. adjustsFontSizeToFitWidth

设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动

15. keyboardType

设置键盘的样式

16.autocapitalizationType

首字母是否大写

17. returnKeyType

return键变成什么键

18. keyboardAppearance

键盘外观

19.delegate

设置代理,用于实现协议

20.  rightView

最右侧加图片是以下代码,左侧类似

21. editing

是否允许编辑。

22.界面重写绘制行为

除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。

22.调整键盘

23. delegate

类要遵守UITextFieldDelegate协议

声明text的代理是我(当前控制器),我会去实现把键盘往下收的方法 这个方法在UITextFieldDelegate里所以我们要遵守UITextFieldDelegate这个协议

代理方法

24.通知

UITextField派生自UIControl,所以UIControl类中的通知系统在文本字段中也可以使用。除了UIControl类的标准事件,你还可以使用下列UITextField类特有的事件

当文本字段退出编辑模式时触发。通知的object属性存储了最终文本。

因为文本字段要使用键盘输入文字,所以下面这些事件发生时,也会发送动作通知

25.Stroyboard中

1、Text :设置文本框的默认文本。

2、Placeholder : 可以在文本框中显示灰色的字,用于提示用户应该在这个文本框输入什么内容。当这个文本框中输入了数据时,用于提示的灰色的字将会自动消失。

3、Background :

4、Disabled : 若选中此项,用户将不能更改文本框内容。

5、接下来是三个按钮,用来设置对齐方式。

6、Border Style : 选择边界风格。

7、Clear Button : 这是一个下拉菜单,你可以选择清除按钮什么时候出现,所谓清除按钮就是出一个现在文本框右边的小 X ,你可以有以下选择:

7.1 Never appears : 从不出现

7.2 Appears while editing : 编辑时出现

7.3 Appears unless editing :

7.4 Is always visible : 总是可见

8、Clear when editing begins : 若选中此项,则当开始编辑这个文本框时,文本框中之前的内容会被清除掉。比如,你现在这个文本框 A 中输入了 "What" ,之后去编辑文本框 B,若再回来编辑文本框 A ,则其中的 "What" 会被立即清除。

9、Text Color : 设置文本框中文本的颜色。

10、Font : 设置文本的字体与字号。

11、Min Font Size : 设置文本框可以显示的最小字体(不过我感觉没什么用)

12、Adjust To Fit : 指定当文本框尺寸减小时,文本框中的文本是否也要缩小。选择它,可以使得全部文本都可见,即使文本很长。但是这个选项要跟 Min Font Size 配合使用,文本再缩小,也不会小于设定的 Min Font Size 。

接下来的部分用于设置键盘如何显示。

13、Captitalization : 设置大写。下拉菜单中有四个选项:

13.1 None : 不设置大写

13.2 Words : 每个单词首字母大写,这里的单词指的是以空格分开的字符串

13.3 Sentances : 每个句子的第一个字母大写,这里的句子是以句号加空格分开的字符串

13.4 All Characters : 所以字母大写

14、Correction : 检查拼写,默认是 YES 。

15、Keyboard : 选择键盘类型,比如全数字、字母和数字等。

16、Appearance:

17、Return Key : 选择返回键,可以选择 Search 、 Return 、 Done 等。

18、Auto-enable Return Key : 如选择此项,则只有至少在文本框输入一个字符后键盘的返回键才有效。

19、Secure : 当你的文本框用作密码输入框时,可以选择这个选项,此时,字符显示为星号。

21.Alignment Horizontal 水平对齐方式

22.Alignment Vertical 垂直对齐方式

23.用于返回一个BOOL值 输入框是否 Selected(选中) Enabled(可用) Highlighted(高亮)

26.UITextField实例一 : UITextField限制字符 (只为数字) 

#define NUMBERS @”0123456789n” (这个代表可以输入数字和换行,请注意这个n,如果不写这个,Done按键将不会触发,如果用在SearchBar中,将会不触发Search事件,因为你自己限制不让输入n,好惨,我在项目中才发现的。) 所以,如果你要限制输入英文和数字的话,就可以把这个定义为:

当然,你还可以在以上方法return之前,做一提示的,比如提示用户只能输入数字之类的。如果你觉得有需要的话。

实例:限制只能输入一定长度的字符

27.UITextField实例二:

在UISearchBar中,当输入信息改变时,它就会调用textDidChange函数,但是UITextField没有这个功能,唯一与这个类似的shouldChangeCharactersInRange函数,也是在文件还没有改变前就调用了,而不是在改变后调用,要想实现这个功能,我们可以增加事件监听的方式.先来看看objective-c提供的接口:

// add target/action for particular event. you can call this multiple times and you can specify multiple target/actions for a particular event.

给特殊事件添加目标或者方法,你能够调用这个方法多次,给特殊事件指定很多目标或者方法

// passing in nil as the target goes up the responder chain. The action may optionally include the sender and the event in that order

给target传递空,会建立响应链,在这行命令,方法可以选择包含方法发送者和事件两个参数。

// the action cannot be NULL. 方法不能为空。

怎么去使用这个接口呢?主要分为两步,第一步就是在UItextField组件中增加对文件编辑改变时事件的监听,然后再实现监听器监听到事件时,所调用的方法.

28.UITextField实例三:

UITextField控件处理键盘弹出时遮住输入框的问题

打开键盘卷动文本字段

默认情况下打开键盘会遮住下面的view,带来一点点困扰,不过这不是什么大问题,我们使用点小小的手段就可以解决。

首先我们要知道键盘的高度是固定不变的,不过在IOS 5.0 以后键盘的高度貌似不是216了,不过不要紧,我们调整调整就是了:

iPhone ipad
竖屏(portrait) 216 264
横屏(landScape) 140 352

我们采取的方法就是在textField(有可能是其他控件)接收到弹出键盘事件时把self.view整体上移216px了(我们就以iPhone竖屏为例了)。

首先我们要设置textField的代理,我们就设为当前控制器了。

然后我们在当前控制器实现下面两个委托方法:

六阿哥

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: