0

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

iPhone 的开发始于 2004 年,当时苹果公司开始召集一个由 1000 名员工组成的团队,致力于高度机密的“紫色计划”[27],其中包括 iPhone 的设计师乔纳森·艾夫爵士。[28] 苹果首席执行官史蒂夫乔布斯将最初的焦点从平板电脑(如 iPad)转向手机。 [29] Apple 在与 AT&T Mobility(当时是 Cingular Wireless)的秘密合作中创建了该设备,估计在 30 个月内的开发成本为 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' 的第一个位置,我无法找到该字符串的下一个位置。

所以请帮我找到那个字符串的所有位置

谢谢你

4

1 回答 1

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)];
}
于 2013-10-21T21:15:40.537 回答