UITextField限制输入文字数量
2017-08-30 本文已影响75人
姚姚先生
- 直入主题
1.首先我们给UITextField加一个事件,来实时监测输入的内容
UITextField *titleField = [[UITextField alloc] init];
titleField.borderStyle = UITextBorderStyleNone;
titleField.delegate = self;
titleField.textColor = black;
titleField.font = font;
titleField.placeholder = @"最多10个字符";
titleField.returnKeyType = UIReturnKeyDone;
titleField.layer.cornerRadius = 3.0f;
titleField.layer.borderWidth = .5f;
titleField.layer.borderColor = [UIColor colorFromString:@"#a6a6a6"].CGColor;
[titleField setValue:[UIColor colorFromString:@"#c2c1c1"] forKeyPath:@"_placeholderLabel.textColor"];
[titleField setValue:[UIFont boldSystemFontOfSize:16] forKeyPath:@"_placeholderLabel.font"];
[titleField addTarget:self action:@selector(textFiledDidChange:) forControlEvents:UIControlEventEditingChanged];
2.实现textFiledDidChange方法(可以在一个页面判断多个UITextField)
#pragma mark - 判断输入框字符串的长度
- (void)textFiledDidChange:(UITextField *)textField
{
NSLog(@"%@", textField.text);
int length = [self convertToInt:textField.text];
//如果输入框中的文字大于10,就截取前10个作为输入框的文字
if (textField == self.conditionField) {
if (length > 6) {
textField.text = [textField.text substringToIndex:6];
}
}else if (textField == self.titleField){
if (length > 10) {
textField.text = [textField.text substringToIndex:10];
}
}
}
3.截取文字的方法
//下面这个方法主要是为了判断textField中汉字的个数
- (int)convertToInt:(NSString *)strtemp//判断中英混合的的字符串长度
{
int strlength = 0;
for (int i=0; i< [strtemp length]; i++) {
int a = [strtemp characterAtIndex:i];
if( a > 0x4e00 && a < 0x9fff) { //判断是否为中文
strlength += 1;
}else{
strlength += 1;
}
}
return strlength;
}
记录开发点滴, 你我一起成长.