【 UITextField】- 文本框

来源:互联网 发布:sql语句美化小工具 编辑:程序博客网 时间:2024/06/08 04:57
一、初始化并设置位置及大小
   UITextField*text = [[UITextFieldalloc]initWithFrame:CGRectMake(20,20,130,30)];
   [self.viewaddSubview:text];
二、UITextField 的常用属性
(1)设置样式
1、borderStyle  -  设置边框样式
    text.borderStyle=UITextBorderStyleRoundedRect;
  •     UITextBorderStyleNone   -   无边框
  •     UITextBorderStyleLine   -   有边框,直线
  •     UITextBorderStyleBezel   -   有边框和阴影(上边框和左边框加重)
  •     UITextBorderStyleRoundedRect   -   圆角
2、 backgroundColor   -   设置输入框的背景颜色
    text.backgroundColor= [UIColorwhiteColor];
3、cornerRadius   -  设置圆角
        field.layer.cornerRadius=5;
        field.layer.masksToBounds=YES;
(2)设置图片
1、background   -  设置背景图片
    text.background= [UIImageimageNamed:@"11.png"];
  • 注意:当 UITextBorderStyle 的值为  UITextBorderStyleRoundedRect 时,无法设置
  • 跟边框样式有冲突
2、disabledBackground   -  设置在不可用的状态下的背景图片
    text.enabled=NO;
   text.disabledBackground= [UIImageimageNamed:@"cc.png"];
注意:如果 background 的值没有设置,则会让 disableBackground 的值失效
3、rightView / leftView   -  设置最右侧/左侧加图片
最右侧加图片的代码:(左侧类似)
   UIImageView*image=[[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"right.png"]];
    text.rightView=image;
4、rightViewMode / leftViewMode   -  设置图片的显示类型
最右侧图片显示类型的代码:(左侧类似)
    text.rightViewMode=UITextFieldViewModeAlways;
        UITextFieldViewModeNever   -  
        UITextFieldViewModeWhileEditing   -  编辑模式
        UITextFieldViewModeUnlessEditing   -  非编辑模式
        UITextFieldViewModeAlways   -  
(3)设置文字
1、text   -  设置输入框一开始就有的文字
2、placeholder   -  默认值
    text.placeholder=@"输入密码";
  • 可以在文本框中显示灰色的字,用于提示用户应该在这个文本框输入什么内容。当这个文本框中输入了数据时,用于提示的灰色的字将会自动消失。
3、font   -  设置输入字体
    text.font= [UIFontfontWithName:@"Arial"size:20.0f];
4、textColor  -  设置字体颜色
    text.textColor= [UIColorredColor];
5、placeholder   -  设置输入框内默认的文字
    text.placeholder=@"password";
  •     当输入框没有内容时,水印提示提示内容为password
6、textAlignment   -  设置输入框内内容的对齐方式
text.textAlignment=NSTextAlignmentRight;
  •     NSTextAlignmentLeft   -  左对齐,默认
  •     NSTextAlignmentCenter   -  居中对齐
  •     NSTextAlignmentRight   -  右对齐
  •     NSTextAlignmentJustified   -  在一个段落的最后一行自然对齐
  •     NSTextAlignmentNatural   -  默认对齐方式
7、contentVerticalAlignment   -  设置内容的垂直对齐方式
    text.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;
  •    UIControlContentVerticalAlignmentCenter   -  居中对齐
  •     UIControlContentVerticalAlignmentTop   -  顶部对齐
  •     UIControlContentVerticalAlignmentBottom   -  底部对齐
  •     UIControlContentVerticalAlignmentFill   -  填充
8、contentHorizontalAlignment   -  水平对齐方式
    UIControlContentHorizontalAlignmentCenter   - 居中
    UIControlContentHorizontalAlignmentLeft   - 顶部
    UIControlContentHorizontalAlignmentRight   底部
    UIControlContentHorizontalAlignmentFill   -  填充
9、secureTextEntry   -  每输入一个字符就变成点,用于密码输入
    text.secureTextEntry=YES;
10、autocorrectionType   -  是否纠错
    text.autocorrectionType=UITextAutocorrectionTypeNo;
  •         UITextAutocorrectionTypeDefault   -  默认
  •         UITextAutocorrectionTypeNo   -  不自动纠错
  •         UITextAutocorrectionTypeYes   -  自动纠错
11、clearsOnBeginEditing   -  设置再次编辑是否清空
    text.clearsOnBeginEditing=YES;
12、minimumFontSize   -  设置自动缩小显示的最小字体大小
    text.minimumFontSize=20;
13、adjustsFontSizeToFitWidth   -  自适应文本窗口大小
    text.adjustsFontSizeToFitWidth=YES;
  • 设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动
14、autocapitalizationType   -  首字母是否大写
    text.autocapitalizationType=UITextAutocapitalizationTypeNone;
        UITextAutocapitalizationTypeNone   -  不自动大写
        UITextAutocapitalizationTypeWords   -  单词首字母大写
        UITextAutocapitalizationTypeSentences   -  句子的首字母大写
        UITextAutocapitalizationTypeAllCharacters   -  所有字母都大写
15、contentVerticalAlignment   -  字的摆设方式
    text.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;
16、Disabled   -  若选中此项,用户将不能更改文本框内容
(4)clearButtonMode   -  设置一个清空按钮
    text.clearButtonMode=UITextFieldViewModeAlways;
  • 通过设置 clearButtonMode 可以指定是否以及何时显示清除按钮
  • 常见于密码输入错误,重新输入时会清空输入框
  •         UITextFieldViewModeNever   -  从不显示清空按钮
  •         UITextFieldViewModeWhileEditing   -  不为空,且在编辑状态时(即获得焦点)显示清空按钮
  •         UITextFieldViewModeUnlessEditing   -  除了编辑状态时,都显示清空按钮
  •         UITextFieldViewModeAlways   -  不为空,一直都显示清空按钮
(5)设置键盘
1、keyboardType   -  设置键盘样式
    text.keyboardType=UIKeyboardTypeNumberPad;
  •         UIKeyboardTypeDefault   -  默认键盘,支持所有字符
  •         UIKeyboardTypeASCIICapable   -  支持ASCII的默认键盘
  •         UIKeyboardTypeNumbersAndPunctuation   -  标准电话键盘,支持+*#字符
  •         UIKeyboardTypeURL   -  URL键盘,支持.com按钮只支持URL字符
  •         UIKeyboardTypeNumberPad   -  数字键盘
  •         UIKeyboardTypePhonePad   -  电话键盘
  •         UIKeyboardTypeNamePhonePad   -  电话键盘,也支持输入人名
  •         UIKeyboardTypeEmailAddress   -  用于输入电子邮件地址的键盘
  •         UIKeyboardTypeDecimalPad   -  数字键盘有数字和小数点
  •         UIKeyboardTypeTwitter   -  优化的键盘,方便输入@#字符
  •         UIKeyboardTypeAlphabet   -  UIKeyboardTypeASCIICapable,
2、returnKeyType   -  返回键的样式
    text.returnKeyType=UIReturnKeyDone;
  •        UIReturnKeyDefault   -  默认灰色按钮,标有Return
  •         UIReturnKeyGo  -  标有Go的蓝色按钮
  •         UIReturnKeyGoogle  -  标有Google的蓝色按钮,用于搜索
  •         UIReturnKeyJoin  -  标有Join的蓝色按钮
  •         UIReturnKeyNext  -  标有Next的蓝色按钮
  •         UIReturnKeyRoute  -  标有Route的蓝色按钮
  •         UIReturnKeySearch  -  标有Search的蓝色按钮
  •         UIReturnKeySend  -  标有Send的蓝色按钮
  •         UIReturnKeyYahoo  -  标有Yahoo的蓝色按钮
  •         UIReturnKeyDone  -  标有Done的蓝色按钮
  •         UIReturnKeyEmergencyCall   -  紧急呼叫按钮
3、keyboardAppearance   -  键盘外观
    text.keyboardAppearance=UIKeyboardAppearanceDefault;
  •         UIKeyboardAppearanceDefault   -  默认外观,浅灰色
  •         UIKeyboardAppearanceAlert   -  深灰石墨色
4、键盘是否隐藏
显示
    [textbecomeFirstResponder];
隐藏
    [text resignFirstResponder];
5、inputView   -  设置一个UIView类型的自定义键盘
6、inputAccessoryView   -  设置一个键盘的自定义工具条
7、键盘类型
  •      UIKeyboardTypeDefault  默认键盘
  •      UIKeyboardTypeASCIICapable  显示ASCII码值得键盘
  •      UIKeyboardTypeNumbersAndPunctuation 显示数字和标点符号得键盘
  •      UIKeyboardTypeURL  显示带有 . / .com URL常用得符号得键盘
  •      UIKeyboardTypeNumberPad 显示0到9得数字键盘 不支持自动大写
  •      UIKeyboardTypePhonePad     显示带有0到9和“*”,“#”得键盘 不支持自动大写
  •      UIKeyboardTypeNamePhonePad 显示一个支持输入一个联系人名字或者号码得键盘 不支持自动大写
  •      UIKeyboardTypeEmailAddress 显示一个支持输入Email地址符号得键盘 “@”
  •      UIKeyboardTypeDecimalPad 显示0到9 和 “."得键盘
  •      UIKeyboardTypeAlphabet 显示一个字母键盘
(6)设置代理
    text.delegate=self;
  • 设置代理,用于实现协议<UITextFieldDelegate>
对UITextField的操作:
@protocolUITextViewDelegate <NSObject, UIScrollViewDelegate>
@optional
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;
- (
BOOL)textViewShouldEndEditing:(UITextView *)textView;

- (
void)textViewDidBeginEditing:(UITextView *)textView;
- (
void)textViewDidEndEditing:(UITextView *)textView;

- (
BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
- (
void)textViewDidChange:(UITextView *)textView;

- (void)textViewDidChangeSelection:(UITextView *)textView;
@end
三、UITextField 的方法
(1)、UITextField 的委托方法
  •             主要是用于键盘的输入处理
- (BOOL)textFieldShouldBeginEditing:(UITextField*)textField{
   
//返回一个BOOL值,指定是否循序文本字段开始编辑
   
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField*)textField{
   
//开始编辑时触发,文本字段将成为first responder
}
- (BOOL)textFieldShouldEndEditing:(UITextField*)textField{
   
//返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first responder
   
//要想在用户结束编辑时阻止文本字段消失,可以返回NO
   
//这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息
   
return NO;
}
 - (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string{
   
//当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。
   
//这对于想要加入撤销选项的应用程序特别有用
   
//可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。
   
//要防止文字被改变可以返回NO
   
//这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中
   
return YES;
}
- (BOOL)textFieldShouldReturn:(UITextField*)textField
{
    [textField resignFirstResponder];
   //返回一个BOOL值,指明是否允许在按下回车键时结束编辑
   //主要是[receiver resignFirstResponder]在哪调用就能把receiver对应的键盘往下收
   
return YES;
}
- (BOOL)textFieldShouldClear:(UITextField*)textField
{
   
//返回一个BOOL值指明是否允许根据用户请求清除内容
   
//可以设置在特定条件下才允许清除内容
   
return YES;
}
四、UITextField 的支持事件
(1)UITextField类特有的事件
【通知】
    UITextField派生自UIControl,所以UIControl类中的通知系统在文本字段中也可以使用。除了UIControl类的标准事件,你还可以使用下列UITextField类特有的事件
  •    UIKIT_EXTERNNSString*const UITextFieldTextDidBeginEditingNotification;
  •    UIKIT_EXTERNNSString*constUITextFieldTextDidEndEditingNotification;
  •     UIKIT_EXTERN NSString *constUITextFieldTextDidChangeNotification;
(2)当文本字段退出编辑模式时触发。通知的object属性存储了最终文本。因为文本字段要使用键盘输入文字,所以下面这些事件发生时,也会发送动作通知
  •    UIKeyboardWillShowNotification //键盘显示之前发送
  •    UIKeyboardDidShowNotification   //键盘显示之后发送
  •    UIKeyboardWillHideNotification //键盘隐藏之前发送
  •     UIKeyboardDidHideNotification   //键盘隐藏之后发送
0 0
原创粉丝点击