[_nameEditTF addTarget:self action:@selector(valueChanged:) forControlEvents:UIControlEventEditingChanged];
- (void)valueChanged:(id)sender {
int strlength = 0;
char* p = (char*)[_nameEditTF.text cStringUsingEncoding:NSUnicodeStringEncoding];
for (int i=0 ; i<[_nameEditTF.text lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
if (*p) {
p++;
strlength++;
}
else {
p++;
}
}
self.longthStr = [_nameEditTF.text mutableCopy];
//中文一个字符 英文两个字符
if ((strlength+1)/2 == 8) {
_index = [_nameEditTF.text length];
}
if ((strlength+1)/2 > 8) {
if (([_longthStr length] >= _index) && (_index > 6)) {
_nameEditTF.text = [_longthStr substringToIndex:_index];
}else if (_index == 0) {
_nameEditTF.text = [_longthStr substringToIndex:8];
}
}
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
int strlength = 0;
char* p = (char*)[textField.text cStringUsingEncoding:NSUnicodeStringEncoding];
for (int i=0 ; i<[textField.text lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
if (*p) {
p++;
strlength++;
}
else {
p++;
}
}
if ((strlength+1)/2 >= 8) {
if ([string isEqualToString:@""]) {
//可以删除
return YES;
}
return NO;
}
return YES;
}