【发布时间】:2014-02-06 17:26:18
【问题描述】:
大家好 :) 我有一种方法,可以在给定数量的单词后剪切长文本。它看起来像这样:
NSString *trimString(NSString *string, int length, Boolean soft) {
if(string == Nil || string.length == 0){
return string;
}
NSMutableString *sb = [[NSMutableString alloc]init];
int actualLength = length - 3;
if(string.length > actualLength){
// -3 because we add 3 dots at the end. Returned string length has to be length including the dots.
if(!soft) {
[sb appendString:[string substringToIndex:actualLength - 3]];
[sb appendString:@"..."];
return sb;
} else {
NSRange r = NSMakeRange(0, actualLength);
//NSRange range = [string rangeOfString:@" " options:NSBackwardsSearch range:r];
NSRange range = [string rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@" \n\r\t"] options:NSBackwardsSearch range:r];
[sb appendString:[string substringToIndex:range.location]];
[sb appendString:@"..."];
return sb;
}
}
return string;
}
我的问题是我必须将所有内容都更改为 NSAttributedString,但是没有像“substringToIndex:”这样的东西,所以我可以更改它...... 甚至可以改变它吗?
谢谢!
【问题讨论】:
-
可以使用 NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString: string];
标签: ios objective-c nsstring nsattributedstring