UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]
//设置边框样式,只有设置了才会显示边框样式
text.borderStyle = UITextBorderStyleRoundedRect
typedef enum {
UITextBorderStyleNone,
UITextBorderStyleLine,
UITextBorderStyleBezel,
UITextBorderStyleRoundedRect
} UITextBorderStyle
//设置输入框的背景颜色,此时设置为白色 如果使用了自定义的背景图片边框会被忽略掉
text.backgroundColor = [UIColor whiteColor]
//设置背景
text.background = [UIImage imageNamed:@"dd.png"]
//设置背景
text.disabledBackground = [UIImage imageNamed:@"cc.png"]
//当输入框没有内容时,水印提示 提示内容为password
text.placeholder = @"password"
//设置输入框内容的字体样式和大小
text.font = [UIFont fontWithName:@"Arial" size:20.0f]
//设置字体颜色
text.textColor = [UIColor redColor]
//输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容
text.clearButtonMode = UITextFieldViewModeAlways
typedef enum {
UITextFieldViewModeNever, 重不出现
UITextFieldViewModeWhileEditing, 编辑时出现
UITextFieldViewModeUnlessEditing, 除了编辑外都出现
UITextFieldViewModeAlways 一直出现
} UITextFieldViewMode
//输入框中一开始就有的文字
text.text = @"一开始就在输入框的文字"
//每输入一个字符就变成点 用语密码输入
text.secureTextEntry = YES
//是否纠错
text.autocorrectionType = UITextAutocorrectionTypeNo
typedef enum {
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
typedef enum {
UIKeyboardTypeDefault, 默认键盘,支持所有字符
UIKeyboardTypeASCIICapable, 支持ASCII的默认键盘
UIKeyboardTypeNumbersAndPunctuation, 标准电话键盘,支持+*#字符
UIKeyboardTypeURL,URL键盘,支持.com按钮 只支持URL字符
UIKeyboardTypeNumberPad, 数字键盘
UIKeyboardTypePhonePad, 电话键盘
UIKeyboardTypeNamePhonePad, 电话键盘,也支持输入人名
UIKeyboardTypeEmailAddress, 用于输入电子 邮件地址的键盘
UIKeyboardTypeDecimalPad, 数字键盘 有数字和小数点
UIKeyboardTypeTwitter,优化的键盘,方便输入@、#字符
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,
} UIKeyboardType
//首字母是否大写
text.autocapitalizationType = UITextAutocapitalizationTypeNone
typedef enum {
UITextAutocapitalizationTypeNone, 不自动大写
UITextAutocapitalizationTypeWords, 单词首字母大写
UITextAutocapitalizationTypeSentences, 句子的首字母大写
UITextAutocapitalizationTypeAllCharacters, 所有字母都大写
} UITextAutocapitalizationType
//return键变成什么键
text.returnKeyType =UIReturnKeyDone
typedef enum {
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;
typedef enum {
UIKeyboardAppearanceDefault, 默认外观,浅灰色
UIKeyboardAppearanceAlert, 深灰 石墨色
} UIReturnKeyType
//设置代理 用于实现协议
text.delegate = self
//把textfield加到视图中
[self.window addSubview:text]
//最右侧加图片是以下代码 左侧类似
UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]]
text.rightView=image
text.rightViewMode = UITextFieldViewModeAlways
typedef enum {
UITextFieldViewModeNever,
UITextFieldViewModeWhileEditing,
UITextFieldViewModeUnlessEditing,
UITextFieldViewModeAlways
} UITextFieldViewMode
//按return键键盘往下收 becomeFirstResponder
类要采用UITextFieldDelegate协议
text.delegate = self 声明text的代理是我,我会去实现把键盘往下收的方法 这个方法在UITextFieldDelegate里所以我们要采用UITextFieldDelegate这个协议
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[text resignFirstResponder] //主要是[receiver resignFirstResponder]在哪调用就能把receiver对应的键盘往下收
return YES
}
重写绘制行为
除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。
– textRectForBounds://重写来重置文字区域
– drawTextInRect://改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
– placeholderRectForBounds://重写来重置占位符区域
– drawPlaceholderInRect://重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
– borderRectForBounds://重写来重置边缘区域
– editingRectForBounds://重写来重置编辑区域
– clearButtonRectForBounds://重写来重置clearButton位置,改变size可能导致button的图片失真
– leftViewRectForBounds:
– rightViewRectForBounds:
ios 导航栏上可以添加textfield的,具体如下:
1、编写设置textfied代码
-(void)viewDidAppear:(BOOL)animated{
UITextField *txtField=[[UITextField alloc] initWithFrame:CGRectMake(0, 0, 200, 30)]
[txtField setBorderStyle:UITextBorderStyleRoundedRect]
txtField.text=@"Hello"
[self.navigationController.navigationBar addSubview:txtField]
}
2、在导航栏显示效果如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)