0

为什么比较相同NSAttributedString不起作用?

我有以下内容:

- (void)someSetupClass {

    NSMutableAttributedString *aString = [[NSMutableAttributedString alloc] initWithString:@"abcdefghijklmnopqrstuvwxyz"];
    [aString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,5)];
    [aString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Light" size:(16.0)] range:NSMakeRange(0, 20)];
    [aString addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(5,6)];

    _aTextView.attributedText = aString;
    _aTextView.delegate = self;

    [_scroll addSubview:_best];
}

- (void)textViewDidBeginEditing:(UITextView *)textView {

    NSMutableAttributedString *aString = [[NSMutableAttributedString alloc] initWithString:@"abcdefghijklmnopqrstuvwxyz"];
    [aString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,5)];
    [aString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"HelveticaNeue-Light" size:(16.0)] range:NSMakeRange(0, 20)];
    [aString addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(5,6)];

    if ([textView.attributedText isEqualToAttributedString:aString]) {

        // Never reaches here, but why?

        textView.text = @"";

        // textView.textColor = [UIColor blackColor];
    }

    [textView becomeFirstResponder];
}
4

2 回答 2

0

检查您的 textView 是否将默认字体设置为 Helvetica/system - 大小 12。可能是因为您的属性字符串的最后一部分在您 setText 后采用了 textView 的默认字体。但是 aString (uvwxyz) 的一部分没有分配字体,因此它不匹配。

希望这可以帮助你:)

于 2014-08-20T09:20:00.453 回答
0

使该 textview 强类型变量并尝试。例如。

@property(nonatomic, strong)UITextView * aTextView;
于 2014-08-20T09:14:18.827 回答