ios - UITextPosition 到 NSRange

标签 ios

我需要使用 NSStringFromRange 但我只有一个开始和结束 UITextPositions。如何将 UITextPosition 转换为 NSRange。

NSMutableArray * wordArray = [[NSMutableArray alloc]init];
id<UITextInputTokenizer> tokenizer = tv.tokenizer;
UITextPosition *start = tv.beginningOfDocument;
while (![start isEqual:tv.endOfDocument]) {
    UITextPosition *end = [tokenizer positionFromPosition:start toBoundary:UITextGranularityWord inDirection:UITextStorageDirectionForward];
    NSString *word = [tv textInRange:[tv textRangeFromPosition:start toPosition:end]];
    [wordArray addObject:NSStringFromRange(<#NSRange range#>)];
    start = end;
}

最佳答案

试试这个:

NSInteger startOffset = [tv offsetFromPosition:tv.beginningOfDocument toPosition:start];
NSInteger endOffset = [tv offsetFromPosition:tv.beginningOfDocument toPosition:end];
NSRange offsetRange = NSMakeRange(startOffset, endOffset - startOffset);
[wordArray addObject:NSStringFromRange(offsetRange)];

关于ios - UITextPosition 到 NSRange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11732150/

相关文章:

ios - 如何使用 Web 服务搜索多个单词

android - 尝试安装 react-devtools 时出错

ios - 如何查找我的 mac 中是否安装了 cocoaPods

ios - 协议(protocol)扩展在 Swift 中是如何工作的?

ios - 从 Apple 推送通知中识别无效 token

ios - 是否可以在 viewDidLoad/viewWillAppear 之外更改导航栏标题?

iphone - 为表格中新添加的行设置动画

ios - 增加 UILabel.text 中第一个字母的字体大小

ios - iOS 上的低级共享内存

iphone - 如何在 iPhone 的 ImageView 中加载 url 图像