在UITableView的索引滚动器(右侧的滚动器包含每个部分的字符)中,如何显示英语字符和日语字符的混合?有没有办法获取NSString的第一个字符,然后检查它是否真的是一个é或其他东西的一部分(因为é是2个unicode字符--e+`)。任何代码片段都会非常有用。只需输入第一个字符,它就会显示随机字符,如"="或"~",而不是日语字符
谢谢!
注意:我没有使用UILocalizedIndexedCollation,因为我使用的是CoreData的FetchResultsController。在网上的许多地方,我读到你不能同时使用两者。
编辑:我现在可以得到角色了,但是表视图索引似乎无法正确渲染它们。有人在表视图索引中显示类似日语字符的内容吗?
最可靠的方法是使用对这些字符敏感的NSString
方法。您可能会对WWDC2011-会话128-高级文本处理视频感兴趣。它广泛地讨论了这个问题。注意"组合字符序列"部分
根据那里提供的信息,你可能会做这样的事情:
#warning I haven't tested this thoroughly
NSString *string = @"Hello";
__block NSString *firstCharacterSequence = nil;
[string enumerateSubstringsInRange:NSMakeRange(0, string.length)
options:NSStringEnumerationByComposedCharacterSequences
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){
firstCharacterSequence = substring;
*stop = YES;
}];
NSLog(@"%@",firstCharacterSequence);