如何在UITextView中获取相同文本(单词)的位置

时间:2013-10-21 20:57:52

标签: iphone ios uitextview

我在文本视图中工作。我必须在dat特定文本视图中突出显示相同的文本。例如 - 在文本视图的下面文本中,我必须突出显示所有'Apple'字样

2004年,当苹果公司开始召集一支由1000名员工组成的团队来开展高度机密的“紫色项目”[27],其中包括iPhone背后的设计师乔纳森·伊夫爵士时,开始开发iPhone。 [28]苹果首席执行官史蒂夫·乔布斯(Steve Jobs)将最初的焦点从平板电脑(如iPad)转向手机。[29] Apple当时与AT& T Mobility-Cingular Wireless秘密合作创建了该设备,估计开发成本在三十个月内达到了1.5亿美元。[30]

我正在使用此代码在dat文本视图中查找特定“Apple”字符串的位置

NSString *sel_text = @"Apple";
 NSRange range = [subTextView.text rangeOfString:sel_text];

subTextView.selectedRange =range;

    UITextRange *textRange = [subTextView selectedTextRange];
 CGRect rect = [subTextView firstRectForRange:textRange];

这有助于我找到'Apple'的第一个位置,我无法找到该字符串的下一个位置。

所以请帮我找到那个strting的所有位置

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用rangeOfString:options:range:选择器在一个简单的循环中遍历整个字符串。例如,

NSString *sel_text = @"Apple";
NSRange range = [data rangeOfString:sel_text];
while(range.location != NSNotFound) {

    subTextView.selectedRange =range;
    UITextRange *textRange = [subTextView selectedTextRange];
    CGRect rect = [subTextView firstRectForRange:textRange];

    range = [data rangeOfString:sel_text options:0 range:NSMakeRange(range.location + sel_text.length, data.length - range.location - sel_text.length)];
}