gpt4 book ai didi

ios - 检测在 NSString 中占用多个索引点的字符的方法?

转载 作者:行者123 更新时间:2023-12-01 18:13:50 26 4
gpt4 key购买 nike

我想知道,有没有办法检测一个在 NSString 中占据超过 1 个索引点的字符? (如表情符号)。我正在尝试实现自定义 TextView ,当用户推送删除时,我需要知道是否应该只删除前一个索引点或更多。

最佳答案

其实NSString使用 UTF-16 .所以很难处理需要two UTF-16 charater(unichar) or more的字符.但是你可以用rangeOfComposedCharacterSequenceAtIndex获取范围而不是删除。

首先从字符串中找到最后一个字符索引

NSUInteger lastCharIndex = [str length] - 1; 

比得到最后一个字符的范围
NSRange lastCharRange = [str rangeOfComposedCharacterSequenceAtIndex: lastCharIndex];

比从字符范围删除(如果它是两个 UTF-16,则删除 UTF-16)
deletedLastCharString = [str substringToIndex: lastCharRange.location];

您可以将此方法用于任何类型的 characters它需要任意数量的 unichar

关于ios - 检测在 NSString 中占用多个索引点的字符的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24981212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com