1

在 UITableView 的索引滚动条(右侧的滚动条包含每个部分的字符)中,我如何显示混合的英文字符并说日文字符?有没有办法获取 NSString 的第一个字符,然后检查它是否实际上是 é 或其他东西的一部分(因为 é 是 2 个 unicode 字符 - e + `)。任何代码片段都会非常有帮助。通过只做第一个字符,它最终会显示随机字符,如“=”或“~”而不是日文字符

谢谢!

注意:我没有使用 UILocalizedIndexedCollat​​ion,因为我使用的是 CoreData 的 FetchResultsController。在网上的许多地方,我读到你不能同时使用两者。

编辑:我现在可以得到这个字符,但是 tableview 索引似乎没有正确呈现它们。有没有人在 tableview 索引中显示类似日文字符的东西?

4

1 回答 1

0

最可靠的方法是使用NSString对这些字符敏感的方法。您可能会对WWDC2011 - Session 128 - Advanced Text Processing视频感兴趣。它广泛讨论了这个主题。注意“组合字符序列”部分

根据那里提供的信息,您可能可以执行以下操作:

#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);
于 2012-07-11T04:15:25.213 回答