我有一个UITextField
用户将在其中输入字符。它很简单,我怎样才能返回它的实际长度?当字符串包含 AZ 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 );