当用户选择不同的单词(如示例)时,我需要为我的NSMutableAttributedString添加2 UITextview。
string =@blabla1 blabla2 blabla3
用户第一次选择@"blabla1“
文本看起来像@"blabla1 blabla2 blabla3“
在我选择@"blabla3“之后,我想在UITextview中得到的结果是@"blabla1 blabla2 blabla3”
现在我得到的结果是@" blabla1 blabla2 blabla3 blabla1 blabla2 blabla3“
我的密码是:
-(NSMutableAttributedString*)getNSMutableAttributedString:(NSString*)string withRange:(NSRange)range withTextView:(UITextView*)textView
{
if (!str)
{
str = [[NSMutableAttributedString alloc] initWithString:string];
UIFont *font = [UIFont boldSystemFontOfSize:16];
[str addAttribute:NSFontAttributeName value:font range:NSMakeRange(range.location, range.length)];
}
else
{
NSMutableAttributedString *mutableAttString = [[NSMutableAttributedString alloc] initWithString:string];
UIFont *font = [UIFont boldSystemFontOfSize:16];
[mutableAttString addAttribute:NSFontAttributeName value:font range:NSMakeRange(range.location, range.length)];
NSMutableAttributedString *first = str;
NSMutableAttributedString *second = mutableAttString;
NSMutableAttributedString* result = [first mutableCopy];
[result appendAttributedString:second];
str = result;
}
return str;
}发布于 2016-03-14 11:31:22
属性可以被添加到一个string.And中,您可以从没有属性的字符串中创建一个新的attributedString。结果您收到@" blabla1 blabla2 blabla3 blabla1 blabla2 blabla3“
-(NSMutableAttributedString*)getNSMutableAttributedString:(NSMutableAttributedString*)string withRange:(NSRange)range withTextView:(UITextView*)textView
{
if (!str)
{
str = [[NSMutableAttributedString alloc] initWithAttributedString:string];
UIFont *font = [UIFont boldSystemFontOfSize:16];
[str addAttribute:NSFontAttributeName value:font range:NSMakeRange(range.location, range.length)];
}
else
{
UIFont *font = [UIFont boldSystemFontOfSize:16];
[str addAttribute:NSFontAttributeName value:font range:NSMakeRange(range.location, range.length)];
}
return str;
}发布于 2016-03-14 11:28:32
您应该做的是获取str (来自UITextView的现有attributedText ),然后向特定的范围添加一个属性。
str = [textView attributedText];
UIFont *font = [UIFont boldSystemFontOfSize:16];
[str addAttribute:NSFontAttributeName value:font range:NSMakeRange(range.location, range.length)];
return str;您要做的是创建一个具有相同内容但属性不同的新属性字符串,然后附加到现有的attributedText中。这就是为什么你看到文本重复了两次。
https://stackoverflow.com/questions/35985887
复制相似问题