5

有没有一种简单的方法来拆分 aNSAttributedString所以我只得到最后50 行左右?

NSMutableAttributedString *resultString = [receiveView.attributedText mutableCopy];
[resultString appendAttributedString:[ansiEscapeHelper attributedStringWithANSIEscapedString:message]];
if ([[resultString.string componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] count]>50) {
    //resultString = [resultString getLastFiftyLines];
}
4

2 回答 2

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];
}
于 2013-07-01T19:40:58.133 回答
2

您可以使用 AttributedString 的子字符串方法:

if ([resultString length]>50) {
  resultString = [resultString attributedSubstringFromRange:NSMakeRange(0, 50)];
}

NSMakeRange - 0 告诉我们从哪里开始,50 是子字符串的长度

于 2013-07-01T19:28:54.480 回答