1.在xib中创建一个UITextField,并声明为全局变量
@property (weak, nonatomic) IBOutlet UITextField *inputTextFiled;
2.在ViewDidLoad方法中添加通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFieldTextDid:) name:UITextFieldTextDidChangeNotification object:nil];
3,实现textFieldTextDid:方法。
-(void)textFieldTextDid:(NSNotification *)sender
{
UITextField *textField = (UITextField *)[sender object];
NSString *str = textField.text;
//-个中文一个字节,2个英文和符号一个字节
int length1 = [self convertToInt:str];
NSLog(@"-个中文一个字节,2个英文和符号一个字节:%d",length1);
//-个中文2个字节,1个英文和符号一个字节
NSInteger length = [self getLengthWithStr:str];
NSLog(@"-个中文2个字节,1个英文和符号一个字节:%zi",length);
//NSLog(@"%zi",[str length]);
}
-(int)convertToInt:(NSString*)strtemp {
int strlength = 0;
char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];
for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
if (*p) {
p++;
strlength++;
}
else {
p++;
}
}
return (strlength+1)/2;
}
-(NSInteger)getLengthWithStr:(NSString *)str
{
NSStringEncoding strEncode = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSData *data = [str dataUsingEncoding:strEncode];
NSInteger length = [data length];
return length;
}