UITextField详解
来源:互联网 发布:下载站系统源码 编辑:程序博客网 时间:2024/05/01 03:27
UITextField *text = [[UITextFieldalloc]initWithFrame:CGRectMake(20, 20, 130, 30)];
typedef enum {
} UITextBorderStyle;
text.backgroundColor = [UIColorwhiteColor];
text.placeholder = @"password";
text.font = [UIFontfontWithName:@"Arial" size:20.0f];
text.textColor = [UIColor redColor];
text.clearButtonMode =UITextFieldViewModeAlway
} UITextFieldViewMode;
text.text = @"一开始就在输入框的文字";
text.secureTextEntry = YES;
text.autocorrectionType =UITextAutocorrectionType
}UITextAutocorrectionType
text.clearsOnBeginEditing = YES;
text.textAlignment =UITextAlignmentLeft;
text.contentVerticalAlignment
text.adjustsFontSizeToFitWidt
text.minimumFontSize = 20;
text.keyboardType =UIKeyboardTypeNumberPad;
UIKeyboardTypeNumberPad,
UIKeyboardTypePhonePad,
UIKeyboardTypeEmailAddre
UIKeyboardTypeDecimalPad
} UIKeyboardType;
text.autocapitalizationType =UITextAutocapitalization
}UITextAutocapitalization
text.returnKeyType =UIReturnKeyDone;
} UIReturnKeyType;
textView.keyboardAppearance=UIKeyboardAppearanceDefa
UIKeyboardAppearanceDefa
UIKeyboardAppearanceAler
} UIReturnKeyType;
text.delegate = self;
[self.window addSubview:text];
UIImageView *image=[[UIImageViewalloc] initWithImage:[UIImage imageNamed:@"right.png"]];
text.rightViewMode =UITextFieldViewModeAlway
} UITextFieldViewMode;
text.delegate = self;
{
}
重写绘制行为
除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。
– drawTextInRect:
– placeholderRectForBounds
– drawPlaceholderInRect: //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super了.
– borderRectForBounds: //重写来重置边缘区域
– editingRectForBounds: //重写来重置编辑区域
– clearButtonRectForBounds
– leftViewRectForBounds:
– rightViewRectForBounds:
委托方法
-(BOOL)textFieldShouldBeginEdit
//返回一个BOOL值,指定是否循序文本字段开始编辑
}
-(void)textFieldDidBeginEditing
//开始编辑时触发,文本字段将成为firstresponder
-(BOOL)textFieldShouldEndEditin
//返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出firstresponder
//要想在用户结束编辑时阻止文本字段消失,可以返回NO //这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息
}
-(BOOL)textField:(UITextField*)textFieldshouldChangeCharactersIn
//这对于想要加入撤销选项的应用程序特别有用
//可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。
//要防止文字被改变可以返回NO
//这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中
}
-(BOOL)textFieldShouldClear:(UITextField *)textField{
//可以设置在特定条件下才允许清除内容
}
-(BOOL)textFieldShouldReturn:(UITextField*)textField{
//查一下resign这个单词的意思就明白这个方法了
}
通知
UITextField派生自UIControl,所以UIControl类中的通知系统在文本字段中也可以使用。除了UIControl类的标准事件,你还可以使用下列UITextField类特有的事件
UITextFieldTextDidChange
UITextFieldTextDidEndEdi
当文本字段退出编辑模式时触发。通知的object属性存储了最终文本。
因为文本字段要使用键盘输入文字,所以下面这些事件发生时,也会发送动作通知
UIKeyboardDidShowNotific
UIKeyboardWillHideNotifi
UIKeyboardDidHideNotific
1、Text :设置文本框的默认文本。
2、Placeholder :可以在文本框中显示灰色的字,用于提示用户应该在这个文本框输入什么内容。当这个文本框中输入了数据时,用于提示的灰色的字将会自动消失。
3、Background :
4、Disabled : 若选中此项,用户将不能更改文本框内容。
5、接下来是三个按钮,用来设置对齐方式。
6、Border Style : 选择边界风格。
7、Clear Button : 这是一个下拉菜单,你可以选择清除按钮什么时候出现,所谓清除按钮就是出一个现在文本框右边的小 X,你可以有以下选择:
Never appears :从不出现
Appears whileediting : 编辑时出现
Appearsunless editing :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 FontSize 配合使用,文本再缩小,也不会小于设定的 Min Font Size 。
接下来的部分用于设置键盘如何显示。
13、Captitalization : 设置大写。下拉菜单中有四个选项:
None:不设置大写
Words:每个单词首字母大写,这里的单词指的是以空格分开的字符串Sentances:每个句子的第一个字母大写,这里的句子是以句号加空格分开的字符串
All Characters: 所以字母大写
14、Correction : 检查拼写,默认是 YES 。
15、Keyboard : 选择键盘类型,比如全数字、字母和数字等。
16、Appearance:
17、Return Key : 选择返回键,可以选择 Search 、 Return 、 Done 等。
18、Auto-enable Return Key : 如选择此项,则只有至少在文本框输入一个字符后键盘的返回键才有效。
19、Secure : 当你的文本框用作密码输入框时,可以选择这个选项,此时,字符显示为星号
1.Alignment Horizontal 水平对齐方式
2.Alignment Vertical 垂直对齐方式
3.用于返回一个BOOL值
限制只能输入特定的字符
(BOOL)textField:(UITextField*)textField shouldChangeCharactersIn
}
上面那个NUMBERS是一个宏,可以在文件顶部定义:
#define NUMBERS @”0123456789\n”(这个代表可以输入数字和换行,请注意这个\n,如果不写这个,Done按键将不会触发,如果用在SearchBar中,将会不触发Search事件,因为你自己限制不让输入\n,好惨,我在项目中才发现的。)
所以,如果你要限制输入英文和数字的话,就可以把这个定义为:
#define kAlphaNum
当然,你还可以在以上方法return之前,做一提示的,比如提示用户只能输入数字之类的。如果你觉得有需要的话。
限制只能输入一定长度的字符
-(BOOL)textField:(UITextField *)textFieldshouldChangeCharactersIn
{
if ([stringisEqualToString:@"\n"])
}
- UITextField详解
- UITextField 详解
- UITextField 详解
- UITextField详解
- UITextField详解
- UITextField详解
- UITextField详解
- UITextField详解
- UITextField详解
- UITextField 详解
- UITextField详解
- UITextField详解
- UITextField详解
- UITextField详解
- UITextField详解
- UITextField 详解
- UITextField详解
- UITextField 详解
- hdmi芯片有transmitter和receiver之分
- iOS8下的开发变化
- 惹恼程序员的十件事
- iOS 图片拉伸
- 使用grep搜索文件内容——快捷、方便
- UITextField详解
- 图像压缩成指定大小(高度/宽度)
- iOS视频拍摄与压缩
- DataTable
- 线性代数·矩阵的加法减法乘法运算简单实现
- AFNetworking详细说明
- SDWebImage使用
- 巧妇能为少米之炊(2)——幽灵侩子手(LMK)
- CocoaPods一个Objective-C第三方库…