要使用输入框的代理方法
1、导入代理名字
2、挂上代理->如果代理方法不触发,说明没有挂上代理
3、实现代理的方法
1.导入代理的名字
@interface AppDelegate ()
@end
@implementation AppDelegate
UITextField:->UIControl的子类->UIView的子类
UITextField:文本输入框
它的属性⬇️⬇️⬇️⬇️⬇️
keyboardType:键盘的样式
{UIKeyboardTypeDefault,
UIKeyboardTypeASCIICapable,
UIKeyboardTypeNumbersAndPunctuation,
UIKeyboardTypeURL,
UIKeyboardTypeNumberPad,
UIKeyboardTypePhonePad, 电话类型 1-9
UIKeyboardTypeNamePhonePad,
UIKeyboardTypeEmailAddress, 邮箱地址
UIKeyboardTypeDecimalPad
UIKeyboardTypeTwitter
UIKeyboardTypeWebSearch 网页搜索 有小地球样式
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,
}
text:可以获得或者改变输入框的内容
borderStyle:输入框的样式
{UITextBorderStyleNone,没有样式
UITextBorderStyleLine,黑线边框
UITextBorderStyleBezel,带阴影的黑线
UITextBorderStyleRoundedRect 圆角}
placeholder:提示文字(例如输入框里面的“请输入密码”)
textColor:颜色
font:字号
textAlignment:对齐方式
adjustsFontSizeToFitWidth:让文字根据宽度自动适配
minimumFontSize:设置文字的最小字号
✅✅✅delegate:代理
{
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;
//只要开始就会调用
- (void)textFieldDidBeginEditing:(UITextField *)textField;
//编辑结束的时候使用 必须return YES;才能使用
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;
//编辑结束的时候使用
- (void)textFieldDidEndEditing:(UITextField *)textField;
//可以获得用户每输入一次的文字及位置,必须return YES;才能使用
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
//点击清除按钮的时候调用 必须return YES;才能使用
- (BOOL)textFieldShouldClear:(UITextField *)textField;
//当点击Return键的时候会触发
- (BOOL)textFieldShouldReturn:(UITextField *)textField;
}
clearButtonMode:设置清除按钮什么时候显示
{UITextFieldViewModeNever, 永远都不显示
UITextFieldViewModeWhileEditing, 当编辑的时候显示
UITextFieldViewModeUnlessEditing, 当不在编辑的时候显示
UITextFieldViewModeAlways 永远显示}
leftView:左侧的视图->输入框左侧的视图----并不是设置了左侧右侧视图就可以显示出来,需要配合使用下面属性
leftViewMode:设置什么情况下显示左侧的视图,跟上面清除按钮类似
inputView:键盘上面的视图(例如输入法的表情按钮区域)
inputAccessoryView:键盘区域的视图
键盘的方法(代理方法)⬇️⬇️⬇️⬇️⬇️写出来就自动调用
©开始编辑的时候调用
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;
- (void)textFieldDidBeginEditing:(UITextField*)textField;
©结束编辑的时候调用
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;
- (void)textFieldDidEndEditing:(UITextField*)textField;
©文字内容发生改变的时候
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
©点击清除按钮的时候调用
- (BOOL)textFieldShouldClear:(UITextField*)textField;
©点击Return键的时候调用
- (BOOL)textFieldShouldReturn:(UITextField *)textField;
专为输入框准备的响应事件⬇️⬇️⬇️⬇️⬇️
UIControlEventEditingDidBegin UIControlEventEditingChanged UIControlEventEditingDidEnd UIControlEventEditingDidEndOnExit
注意点:
1、如果想使用代理方法,必须先导入代理
2、如果代理方法没有触发,看是否挂上了代理
在使用左右侧视图的时候,要配合左右侧视图的model来使用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window makeKeyAndVisible];
UITextField *accTextField = [[UITextField alloc]initWithFrame:CGRectMake(10, 40, CGRectGetWidth([UIScreen mainScreen].bounds)-20,40)];
[self.window addSubview:accTextField];
// accTextField.backgroundColor = [UIColor brownColor];
//设置输入框样式
accTextField.borderStyle = UITextBorderStyleBezel;
//提示文字
accTextField.placeholder = @"请输入文字";
//清除按钮
accTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
//设置一个视图
UIImageView *leftImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];
[self.window addSubview:leftImageView];
//设置一张图片
leftImageView.image = [UIImage imageNamed:@"left"];
accTextField.leftView = leftImageView;
accTextField.leftViewMode = UITextFieldViewModeAlways;
//键盘的样式
accTextField.keyboardType = UIKeyboardTypeAlphabet;
UIView *inputV = [[UIView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth([UIScreen mainScreen].bounds), 40)];
inputV.backgroundColor = [UIColor brownColor];
[self.window addSubview:inputV];
accTextField.inputView = inputV;
accTextField.inputAccessoryView = inputV;
//2、想使用代理方法 必须挂上代理***
accTextField.delegate = self;
return YES;
}
//3、实现代理的方法
//可以获得用户每输入一次的文字及位置,必须return YES;才能使用
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSLog(@"%@",string);
return YES;
}
//点击清除按钮的时候调用
- (BOOL)textFieldShouldClear:(UITextField *)textField{
NSLog(@"清除");
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField{
NSLog(@"开始");
}
//编辑结束的时候使用
- (void)textFieldDidEndEditing:(UITextField *)textField{
NSLog(@"%@",textField.text);
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
//回收键盘->输入结束
[textField resignFirstResponder];
NSLog(@"%@",textField.text);
return YES;
}
网友评论