IOS UI学习教程之设置UITextField各种属性
UITextField是IOS中非常常用的一个控件,用来接收用户输入信息,完成应用和用户的交互。它的主要属性设置如下:
//初始化textfield并设置位置及大小 UITextField*text=[[UITextFieldalloc]initWithFrame:CGRectMake(20,20,130,30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle=UITextBorderStyleRoundedRect; typedefenum{ UITextBorderStyleNone, UITextBorderStyleLine, UITextBorderStyleBezel, UITextBorderStyleRoundedRect }UITextBorderStyle; //设置输入框的背景颜色,此时设置为白色如果使用了自定义的背景图片边框会被忽略掉 text.backgroundColor=[UIColorwhiteColor]; //设置背景 text.background=[UIImageimageNamed:@"dd.png"]; //设置背景 text.disabledBackground=[UIImageimageNamed:@"cc.png"]; //当输入框没有内容时,水印提示提示内容为password text.placeholder=@"password"; //设置输入框内容的字体样式和大小 text.font=[UIFontfontWithName:@"Arial"size:20.0f]; //设置字体颜色 text.textColor=[UIColorredColor]; //输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容 text.clearButtonMode=UITextFieldViewModeAlways; typedefenum{ UITextFieldViewModeNever,重不出现 UITextFieldViewModeWhileEditing,编辑时出现 UITextFieldViewModeUnlessEditing,除了编辑外都出现 UITextFieldViewModeAlways一直出现 }UITextFieldViewMode; //输入框中一开始就有的文字 text.text=@"一开始就在输入框的文字"; //每输入一个字符就变成点用语密码输入 text.secureTextEntry=YES; //是否纠错 text.autocorrectionType=UITextAutocorrectionTypeNo; typedefenum{ UITextAutocorrectionTypeDefault,默认 UITextAutocorrectionTypeNo,不自动纠错 UITextAutocorrectionTypeYes,自动纠错 }UITextAutocorrectionType; //再次编辑就清空 text.clearsOnBeginEditing=YES; //内容对齐方式 text.textAlignment=UITextAlignmentLeft; //内容的垂直对齐方式UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment text.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter; //设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动 textFied.adjustsFontSizeToFitWidth=YES; //设置自动缩小显示的最小字体大小 text.minimumFontSize=20; //设置键盘的样式 text.keyboardType=UIKeyboardTypeNumberPad; typedefenum{ UIKeyboardTypeDefault,默认键盘,支持所有字符 UIKeyboardTypeASCIICapable,支持ASCII的默认键盘 UIKeyboardTypeNumbersAndPunctuation,标准电话键盘,支持+*#字符 UIKeyboardTypeURL,URL键盘,支持.com按钮只支持URL字符 UIKeyboardTypeNumberPad,数字键盘 UIKeyboardTypePhonePad,电话键盘 UIKeyboardTypeNamePhonePad,电话键盘,也支持输入人名 UIKeyboardTypeEmailAddress,用于输入电子邮件地址的键盘 UIKeyboardTypeDecimalPad,数字键盘有数字和小数点 UIKeyboardTypeTwitter,优化的键盘,方便输入@、#字符 UIKeyboardTypeAlphabet=UIKeyboardTypeASCIICapable, }UIKeyboardType; //首字母是否大写 text.autocapitalizationType=UITextAutocapitalizationTypeNone; typedefenum{ UITextAutocapitalizationTypeNone,不自动大写 UITextAutocapitalizationTypeWords,单词首字母大写 UITextAutocapitalizationTypeSentences,句子的首字母大写 UITextAutocapitalizationTypeAllCharacters,所有字母都大写 }UITextAutocapitalizationType; //return键变成什么键 text.returnKeyType=UIReturnKeyDone; typedefenum{ UIReturnKeyDefault,默认灰色按钮,标有Return UIReturnKeyGo,标有Go的蓝色按钮 UIReturnKeyGoogle, 标有Google的蓝色按钮,用语搜索 UIReturnKeyJoin, 标有Join的蓝色按钮 UIReturnKeyNext, 标有Next的蓝色按钮 UIReturnKeyRoute, 标有Route的蓝色按钮 UIReturnKeySearch, 标有Search的蓝色按钮 UIReturnKeySend, 标有Send的蓝色按钮 UIReturnKeyYahoo, 标有Yahoo的蓝色按钮 UIReturnKeyYahoo, 标有Yahoo的蓝色按钮 UIReturnKeyEmergencyCall,紧急呼叫按钮 }UIReturnKeyType; //键盘外观 textView.keyboardAppearance=UIKeyboardAppearanceDefault; typedefenum{ UIKeyboardAppearanceDefault,默认外观,浅灰色 UIKeyboardAppearanceAlert,深灰石墨色 }UIReturnKeyType; //设置代理用于实现协议 text.delegate=self; //把textfield加到视图中 [self.windowaddSubview:text]; //最右侧加图片是以下代码左侧类似 UIImageView*image=[[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"right.png"]]; text.rightView=image; text.rightViewMode=UITextFieldViewModeAlways; typedefenum{ UITextFieldViewModeNever, UITextFieldViewModeWhileEditing, UITextFieldViewModeUnlessEditing, UITextFieldViewModeAlways }UITextFieldViewMode; //按return键键盘往下收becomeFirstResponder 类要采用UITextFieldDelegate协议 text.delegate=self;声明text的代理是我,我会去实现把键盘往下收的方法这个方法在UITextFieldDelegate里所以我们要采用UITextFieldDelegate这个协议 -(BOOL)textFieldShouldReturn:(UITextField*)textField { [textresignFirstResponder];//主要是[receiverresignFirstResponder]在哪调用就能把receiver对应的键盘往下收 returnYES; } 重写绘制行为 除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。 –textRectForBounds://重写来重置文字区域 –drawTextInRect: //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了. –placeholderRectForBounds: //重写来重置占位符区域 –drawPlaceholderInRect: //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了. –borderRectForBounds: //重写来重置边缘区域 –editingRectForBounds: //重写来重置编辑区域 –clearButtonRectForBounds: //重写来重置clearButton位置,改变size可能导致button的图片失真 –leftViewRectForBounds: –rightViewRectForBounds: 委托方法 -(BOOL)textFieldShouldBeginEditing:(UITextField*)textField{ //返回一个BOOL值,指定是否循序文本字段开始编辑 returnYES; } -(void)textFieldDidBeginEditing:(UITextField*)textField{ //开始编辑时触发,文本字段将成为firstresponder } -(BOOL)textFieldShouldEndEditing:(UITextField*)textField{ //返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出firstresponder //要想在用户结束编辑时阻止文本字段消失,可以返回NO //这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息 returnNO; } -(BOOL)textField:(UITextField*)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString*)string{ //当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。 //这对于想要加入撤销选项的应用程序特别有用 //可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。 //要防止文字被改变可以返回NO //这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中 returnYES; } -(BOOL)textFieldShouldClear:(UITextField*)textField{ //返回一个BOOL值指明是否允许根据用户请求清除内容 //可以设置在特定条件下才允许清除内容 returnYES; } -(BOOL)textFieldShouldReturn:(UITextField*)textField{ //返回一个BOOL值,指明是否允许在按下回车键时结束编辑 //如果允许要调用resignFirstResponder方法,这回导致结束编辑,而键盘会被收起[textFieldresignFirstResponder]; //查一下resign这个单词的意思就明白这个方法了 returnYES; }
以上就是本文的全部内容,希望对大家学习IOS程序设计有所帮助。