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 );