我正在努力让某些字符在两个字符<
和>
之间是不同的颜色。我尝试使用这种方法来做到这一点
-(NSString*)stringBetweenString:(NSString*)start andString:(NSString*)end fromString:(NSString*)other{
NSScanner* scanner = [NSScanner scannerWithString:other];
[scanner setCharactersToBeSkipped:nil];
[scanner scanUpToString:start intoString:NULL];
if ([scanner scanString:start intoString:NULL]) {
NSString* result = nil;
if ([scanner scanUpToString:end intoString:&result]) {
return result;
}
}
return nil;
}
这就是我想要的,但仅限于一个子串。我有多个在这些字符之间的子串,并希望它们都是不同的颜色。我用来改变颜色的方法就是这个
[self.tv setTextColor:[NSColor redColor] range:[s1 rangeOfString:[self stringBetweenString:@"<" andString:@">" otherString:s1] options:NSCaseInsensitiveSearch]];
其中self.tv
是NSTextView
。如何获取多个子串的范围并更改这些子串的颜色?