//初始化textfield并设置位置及大小
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(50, 250, 200, 50)];
/*
typedef enum {
UITextBorderStyleNone,
UITextBorderStyleLine,
UITextBorderStyleBezel,
UITextBorderStyleRoundedRect
} UITextBorderStyle;
*/
//设置边框样式,只有设置了才会显示边框样式
textField.borderStyle = UITextBorderStyleRoundedRect;
//设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉
textField.backgroundColor = [UIColor whiteColor];
//设置背景 注意: 只有在 UITextBorderStyleNone 样式下,设置背景图才会生效,且图片大小小于 text 的frame时,图片会拉伸
textField.background = [UIImage imageNamed:@"imageName.png"];
//设置背景 设置enable为NO 时的背景图片
textField.disabledBackground = [UIImage imageNamed:@"imageName.png"];
//当输入框没有内容时,默认提示 提示内容为password
textField.placeholder = @"请输入您的用户名";
//设置输入框内容的字体样式和大小
textField.font = [UIFont fontWithName:@"Arial" size:20.0f];
//设置字体颜色
textField.textColor = [UIColor redColor];
/*
typedef enum {
UITextFieldViewModeNever, 重不出现
UITextFieldViewModeWhileEditing, 编辑时出现
UITextFieldViewModeUnlessEditing, 除了编辑外都出现
UITextFieldViewModeAlways 一直出现
} UITextFieldViewMode;
*/
//输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容
textField.clearButtonMode = UITextFieldViewModeAlways;
//输入框中一开始就有的文字
textField.text = @"RangingWon";
//密文显示
textField.secureTextEntry = YES;
/*
typedef enum {
UITextAutocorrectionTypeDefault, 默认
UITextAutocorrectionTypeNo, 不自动纠错
UITextAutocorrectionTypeYes, 自动纠错
} UITextAutocorrectionType;
*/
//是否纠错
textField.autocorrectionType = UITextAutocorrectionTypeNo;
//再次编辑就清空
textField.clearsOnBeginEditing = YES;
//内容对齐方式
textField.textAlignment = UITextAlignmentLeft;
//内容的垂直对齐方式
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
//设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动
textField.adjustsFontSizeToFitWidth = YES;
//设置自动缩小显示的最小字体大小,adjustsFontSizeToFitWidth为YES才会起作用
textField.minimumFontSize = 20;
/*
typedef enum {
UIKeyboardTypeDefault, 默认键盘,支持所有字符
UIKeyboardTypeASCIICapable, 支持ASCII的默认键盘
UIKeyboardTypeNumbersAndPunctuation, 标准电话键盘,支持+*#字符
UIKeyboardTypeURL, URL键盘,支持.com按钮 只支持URL字符
UIKeyboardTypeNumberPad, 数字键盘
UIKeyboardTypePhonePad, 电话键盘
UIKeyboardTypeNamePhonePad, 电话键盘,也支持输入人名
UIKeyboardTypeEmailAddress, 用于输入电子 邮件地址的键盘
UIKeyboardTypeDecimalPad, 数字键盘 有数字和小数点
UIKeyboardTypeTwitter, 优化的键盘,方便输入@、#字符
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,
} UIKeyboardType;
*/
//设置键盘的样式
textField.keyboardType = UIKeyboardTypeNumberPad;
/*
typedef enum {
UITextAutocapitalizationTypeNone, 不自动大写
UITextAutocapitalizationTypeWords, 单词首字母大写
UITextAutocapitalizationTypeSentences, 句子的首字母大写
UITextAutocapitalizationTypeAllCharacters, 所有字母都大写
} UITextAutocapitalizationType;
*/
//首字母是否大写
textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
/*
typedef enum {
UIReturnKeyDefault, 默认 灰色按钮,标有Return
UIReturnKeyGo, 标有Go的蓝色按钮
UIReturnKeyGoogle, 标有Google的蓝色按钮,用语搜索
UIReturnKeyJoin, 标有Join的蓝色按钮
UIReturnKeyNext, 标有Next的蓝色按钮
UIReturnKeyRoute, 标有Route的蓝色按钮
UIReturnKeySearch, 标有Search的蓝色按钮
UIReturnKeySend, 标有Send的蓝色按钮
UIReturnKeyYahoo, 标有Yahoo的蓝色按钮
UIReturnKeyYahoo, 标有Yahoo的蓝色按钮
UIReturnKeyEmergencyCall, 紧急呼叫按钮
} UIReturnKeyType;
*/
//return键模式
textField.returnKeyType =UIReturnKeyDone;
/*
typedef enum {
UIKeyboardAppearanceDefault, 默认外观,浅灰色
UIKeyboardAppearanceAlert, 深灰 石墨色
} UIReturnKeyType;
*/
//键盘外观
textField.keyboardAppearance=UIKeyboardAppearanceDefault;
//设置代理
textField.delegate = self;
//添加到视图中
[self.view addSubview:textField];
//最右侧加图片是以下代码 左侧类似
UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]];
textField.rightView=image;
textField.rightViewMode = UITextFieldViewModeAlways;
代理方法:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
//按return键键盘往下收
[textField resignFirstResponder];
return YES;
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
//将要开始编辑时触发
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField{
//开始编辑时触发
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
//将要结束编辑时触发
return NO;
}
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
//当文字将要输入时触发
return YES;
}
- (BOOL)textFieldShouldClear:(UITextField *)textField{
//将要清除时触发
return YES;
}