问题一: 设置UITextFeild 粘贴功能
UItextFeild本身自带粘贴功能,我们修改自带的粘贴功能,需要新建一个子类,并且重写方法,方法如下:
1.禁止使用所有输入框功能按钮
-(BOOL)canPerformAction:(SEL)actionwithSender:(id)sender {
UIMenuController *menuController = [UIMenuController sharedMenuController];
if(menuController) {
[UIMenuController sharedMenuController].menuVisible=NO;
}
returnNO;
}
2.选择禁用的功能
- (BOOL)canPerformAction:(SEL)actionwithSender:(id)sender
{
// 禁用粘贴功能
if(action == @selector(paste:))
return NO;
// 禁用选择功能
if(action ==@selector(select:))
return NO;
// 禁用全选功能
if(action == @selector(selectAll:))
return NO;
return [super canPerformAction:action withSender:sender];
}
重点:该类是UITextFeild的子类,子类重写父类的方法即可,如果直接使用往往paste:方法不被执行
(遇到问题二:)设置UITextFeild的边框
设计师往往需要使用一些边框,颜色,的问题
1、设置边框样式
textField.borderStyle = UITextBorderStyleRoundedRect;//圆角
可选属性:
UITextBorderStyleNone,无边框
UITextBorderStyleLine,有边框
UITextBorderStyleBezel,有边框和阴影
UITextBorderStyleRoundedRect圆角
2、设置背景颜色
textField.backgroundColor = [UIColor blueColor];
3、设置背景图片
textField.background=[UIImage imageNamed:@"test.png"];
4、提示文字
textField.placeholder = @"请输入";
5、设置和读取文字内容
textField.text = @”hello”;
NSString * str = textField.text;
6、设置字体
[textField setFont:[UIFont fontWithName:@"Arial" size:30]];
NSLog(@"%@", [UIFont familyNames]); 查看字体集
7、密文输入
textField.secureTextEntry = YES;
8、键盘类型
textField.keyboardType = UIKeyboardTypeNumberPad; 数字键
UIKeyboardTypeDefault, 当前键盘(默认)
UIKeyboardTypeASCIICapable, 字母输入键
UIKeyboardTypeNumbersAndPunctuation, 数字和符号
UIKeyboardTypeURL, URL键盘
UIKeyboardTypeNumberPad, 数字键盘
UIKeyboardTypePhonePad, 电话号码输入键盘
UIKeyboardTypeEmailAddress, 邮件地址输入键盘
9、键盘风格
textView.keyboardAppearance=UIKeyboardAppearanceDefault;
可选属性
UIKeyboardAppearanceDefault, 默认外观,浅灰色
UIKeyboardAppearanceAlert, 深灰 石墨色
10、设置自定义键盘
UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0,0,320.300)];
//位置和宽由系统决定。
textField.inputView = customView ;
inputAccessoryView 设置系统键盘或自定义键盘上的视图
11、设置左右视图
UITextField 可以直接设置 leftView 或 rightView, 文本输入区域就在 leftView 和 rightView 之间。
textField.leftView = leftview;
textField.leftViewMode = UITextFieldViewModeAlways;
右视图rightView也是一样,Mode有四种
UITextFieldViewModeNever, 从不出现
UITextFieldViewModeWhileEditing 编辑时显示
UITextFieldViewModeUnlessEditing 不编辑时显示
UITextFieldViewModeAlways 总是显示
12、设置清除按钮显示模式
textField.clearButtonMode = UITextFieldViewModeAlways;
Mode同左右视图的mode一样。
13、再次编辑时是否清空之前内容;默认NO
textField.clearsOnBeginEditing = YES
14、对齐方式
垂直对齐:
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter
可选属性:
UIControlContentVerticalAlignmentCenter 居中对齐
UIControlContentVerticalAlignmentTop 顶部对齐,默认是顶部对齐
UIControlContentVerticalAlignmentBottom 底部对齐
UIControlContentVerticalAlignmentFill 完全填充
水平对齐:
textField.textAlignment = UITextAlignmentCenter;
可选属性:
UITextAlignmentLeft,左对齐,默认是左对齐
UITextAlignmentCenter,
UITextAlignmentRight,右对齐
15、 设置滚动
textField.font = [UIFont systemFontOfSize:30]; 设置文字大小
textField.adjustsFontSizeToFitWidth = YES; 默认是NO YES当充满边框时,文字会缩小,当小到一定程度时仍然会滚动;自适应宽度;
设置滚动时最小字号,与滚动相关,要比设置的字体小,否则没有意义,没有设置这一项文字也会缩小和滚动
textField.minimumFontSize = 20;
16、设置return键
textField.returnKeyType = UIReturnKeyGoogle;search
可选属性
UIReturnKeyDefault, 默认 灰色按钮,标有Return
UIReturnKeyGo, 标有Go的蓝色按钮
UIReturnKeyGoogle,标有Google的蓝色按钮,用语搜索
UIReturnKeyJoin,标有Join的蓝色按钮
UIReturnKeyNext,标有Next的蓝色按钮
UIReturnKeyRoute,标有Route的蓝色按钮
UIReturnKeySearch,标有Search的蓝色按钮
UIReturnKeySend,标有Send的蓝色按钮
UIReturnKeyYahoo,标有Yahoo的蓝色按钮
UIReturnKeyYahoo,标有Yahoo的蓝色按钮
UIReturnKeyEmergencyCall, 紧急呼叫按钮
17、设置输入自动纠正模式
textField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters;
可选属性:
UITextAutocapitalizationTypeNone, 不自动纠正
UITextAutocapitalizationTypeWords, 单词首字母大写
UITextAutocapitalizationTypeSentences, 句子的首字母大写
UITextAutocapitalizationTypeAllCharacters, 所有字母都大写
二、文本编辑框代理
1、是否进入编辑模式
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
默认返回YES,进入编辑模式。NO不进入编辑模式
2、进入编辑模式
- (void)textFieldDidBeginEditing:(UITextField *)textField
3、是否退出编辑模式
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
默认返回YES,退出编辑模式。NO不退出编辑模式
4、退出编辑模式
- (void)textFieldDidEndEditing:(UITextField *)textField
5、点击清除按钮是否清除
- (BOOL)textFieldShouldClear:(UITextField *)textField
默认返回YES,返回NO不清除
6、点击键盘上Return按钮时候调用
- (BOOL)textFieldShouldReturn:(UITextField *)textField
7、当输入任何字符时,代理调用该方法
-(BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
当输入字符时,代理调用该方法,如果返回YES则这次输入可以成功,如果返回NO,不能输入成功。range表示光标位置,string表示这次输入的字符串。
参考:http://www.cnblogs.com/zy1987/p/3196226.html