我有一个UITextField
,用户将输入字符。简单来说,我该如何返回它的实际长度?当字符串包含A-Z 1-9字符时,它按预期工作,但任何表情符号或特殊字符都会被计算两次。
最简单的格式中,一些特殊字符(如表情符号)只分配了2个字符:
NSLog(@"Field '%@' contains %i chars", myTextBox.text, [myTextBox.text length] );
我尝试使用
characterAtIndex
,substringFromIndex
等循环遍历每个字符,但无济于事。根据下面的答案,用于计算字符数的确切代码(希望这是正确的方法,但它有效。):
NSString *sString = txtBox.text;
__block int length = 0;
[sString enumerateSubstringsInRange:NSMakeRange(0, [sString length])
options:NSStringEnumerationByComposedCharacterSequences
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
length++;
}];
NSLog(@"Total: %u", length );