OC 控件 TextField的常用知识
2021-07-19 本文已影响0人
冯汉栩
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。
1.TextField 左边边距
self.textField.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 8, 0)];
self.textField.leftViewMode = UITextFieldViewModeAlways;
2.获取输入的值
UITextFieldDelegate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSString *newText = [textField.text stringByReplacingCharactersInRange:range withString:string];
NSLog(@"----- %@",newText);
return YES;
}
3.去除左右内容中的空格
NSString *str = [self.Field.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
4.判断内容是否全部是空格
//看剩下的字符串的长度是否为零
NSString *temp = [tf.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
if ([temp length]== 0) {
}
5.只允许输入字母和数字,限制长度
image.png
#pragma mark - 输入框发生改变就触发
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if ([textField isEqual:self.phoneTextField]) {//手机框
self.previousSelection = textField.selectedTextRange;
self.previousTextFieldContent = textField.text;
return YES;
}else if ([textField isEqual:self.VCodeTextField]){//验证码框
self.VCode = [textField.text stringByReplacingCharactersInRange:range withString:string];
[self controlNextBtnByPhoneNum:self.phoneCode];
return YES;
}else if ([textField isEqual:self.passwordTextField]){//密码框
//原理就是把输入的信息转换成ASCII值 查看是否符合要求
NSUInteger lengthOfString = string.length; //lengthOfString的值始终为1
for (NSInteger loopIndex = 0; loopIndex < lengthOfString; loopIndex++) {
unichar character = [string characterAtIndex:loopIndex]; //将输入的值转化为ASCII值(即内部索引值),可以参考ASCII表
// 48-57;{0,9};65-90;{A..Z};97-122:{a..z}
if (character < 48){ return NO; }
if (character > 57 && character < 65){ return NO; }
if (character > 90 && character < 97){ return NO; }
if (character > 122){ return NO; }
}
NSUInteger proposedNewLength = textField.text.length - range.length + string.length;//检测总长度
if (proposedNewLength > 16) { return NO; }//限制长度
//上面的情况都是不合格的 返回NO
self.pwdCode = [textField.text stringByReplacingCharactersInRange:range withString:string];
[self controlNextBtnByPhoneNum:self.phoneCode];
return YES;
}else{
return NO;
}
}