一. 在输入框不允许输入汉字的情况下,这个就简单了
首先引入代理 <UITextFieldDelegate>
然后
UITextField *nameTf=[[UITextField alloc]initWithFrame:CGRectMake(50, 50,WIDTH*0.8 ,30)];
nameTf.delegate=self;
[self.view addSubview:nameTf];
然后在协议方法中做判断,获取内容
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
//之所以里面限制内容这么写,是因为,如果用户回删内容的话,仅仅if(textField.text.length>11){ return NO }else return YES;是不能够完美实现要求的,大家可以去试试
if(textField.text.length==6){
if ([string isEqualToString:@""]) {
return YES;
}else
return NO;
}else
return YES;
}
首先引入代理 <UITextFieldDelegate>
然后
UITextField *nameTf=[[UITextField alloc]initWithFrame:CGRectMake(50, 50,WIDTH*0.8 ,30)];[nameTf addTarget:self action:@selector(textFieldEditChanged:) forControlEvents:UIControlEventEditingChanged];
[self.view addSubview:nameTf];
- (void)textFieldEditChanged:(UITextField *)textField{
NSLog(@"textfield text %@",textField.text);
NSString *lang = [[UITextInputMode currentInputMode] primaryLanguage]; // 键盘输入模式
if ([lang isEqualToString:@"zh-Hans"]) { // 简体中文输入,包括简体拼音,健体五笔,简体手写
UITextRange *selectedRange = [textField markedTextRange];
//获取高亮部分
UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
// 没有高亮选择的字,则对已输入的文字进行字数统计和限制
if (!position) {
if (textField.text.length > 6) {
textField.text = [textField.text substringToIndex:5];
}
}
// 有高亮选择的字符串,则暂不对文字进行统计和限制
else{
}
}
// 中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
else{
if (textField.text.length > 6) {
textField.text = [textField.text substringToIndex:5];
}
}
}