是否有一种简单的方法来分割NSAttributedString
所以我只得到最后 50个左右的行?
NSMutableAttributedString *resultString = [receiveView.attributedText mutableCopy];
[resultString appendAttributedString:[ansiEscapeHelper attributedStringWithANSIEscapedString:message]];
if ([[resultString.string componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] count]>50) {
//resultString = [resultString getLastFiftyLines];
}
答案 0 :(得分:3)
是否有一种简单的方法来分割NSAttributedString,所以我只得到最后50行?
没有。您必须请求string
并确定您感兴趣的范围,然后使用NSAttributedString
等API创建源自源的新- [NSAttributedString attributedSubstringFromRange:]
代表:
- (NSAttributedString *)lastFiftyLinesOfAttributedString:(NSAttributedString *)pInput
{
NSString * string = pInput.string;
NSRange rangeOfInterest = ...determine the last 50 lines in "string"...;
return [pInput attributedSubstringFromRange:rangeOfInterest];
}
答案 1 :(得分:2)
您可以使用AttributedString的子串方法:
if ([resultString length]>50) {
resultString = [resultString attributedSubstringFromRange:NSMakeRange(0, 50)];
}
NSMakeRange - 0告诉我们从哪里开始,50是子串的长度