UITextview 给给定的字符串添加link属性 指定字符串添加点击方法

- (void)viewDidLoad {

    [superviewDidLoad];

    //XIB 拖控件textview 要将其link  属性勾选上

    //textview设置代理 非编辑状态下才可以连接url

    self.textview.delegate =self;

    self.textview.editable =NO;

    [selftestAttribute]; 

}

//给字符串添加属性

-(void)testAttribute{

    NSMutableAttributedString *attStr0 = [[NSMutableAttributedStringalloc]initWithString:@"----hello!"attributes:@{NSForegroundColorAttributeName:[UIColorredColor]}];

    NSMutableAttributedString *attStr1 = [[NSMutableAttributedStringalloc]initWithString:@"----今天"attributes:@{NSForegroundColorAttributeName:[UIColorpurpleColor],NSFontAttributeName:[UIFontsystemFontOfSize:20]}];

    [attStr1 addAttribute:NSLinkAttributeNamevalue:[NSStringstringWithFormat:@"http://www.baidu.com"]range:NSMakeRange(0, attStr1.length)];

    [attStr0 appendAttributedString:attStr1];

    NSMutableAttributedString *attStr2 = [[NSMutableAttributedStringalloc]initWithString:@"----天气真好!"attributes:@{NSForegroundColorAttributeName:[UIColorredColor]}];

    [attStr0 appendAttributedString:attStr2];

    self.textview.attributedText = attStr0;

}

//textview代理事件

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange{

    if ([URL.absoluteString isEqualToString:@"http://www.baidu.com"]) {

        //点击attStr连接会触发此代理方法

        //添加点击事件

        return YES;

    }

    return NO;

}



你可能感兴趣的:(IOS)