Ios 在UITextView的NSAttribute字符串中创建可单击链接
我做了一个可点击的链接。我的代码:Ios 在UITextView的NSAttribute字符串中创建可单击链接,ios,hyperlink,character-encoding,urlencode,nsmutablestring,Ios,Hyperlink,Character Encoding,Urlencode,Nsmutablestring,我做了一个可点击的链接。我的代码: NSString *textBlah = @"blah bleh bluh blih...."; - (void)hyperLinkAndColor:(NSString*)name withAttribute:(NSMutableAttributedString*)attributedText{ if ([textBlah rangeOfString:name].location != NSNotFound) {
NSString *textBlah = @"blah bleh bluh blih....";
- (void)hyperLinkAndColor:(NSString*)name withAttribute:(NSMutableAttributedString*)attributedText{
if ([textBlah rangeOfString:name].location != NSNotFound) {
NSRange rangeName = [textInformation rangeOfString:name];
if ([name rangeOfString:@" "].location != NSNotFound) {
name = [name stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
}
NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"linktink://?name=%@", name]];
[attributedText beginEditing];
[attributedText addAttribute:NSLinkAttributeName value:[url absoluteString] range:rangeName];
[attributedText addAttribute:NSForegroundColorAttributeName value:[UIColor orangeColor] range:rangeName];
[attributedText endEditing];
}
}
它很好用。但我有一个问题。当“name”是您好 或হ্যালো 或者héllò…,url总是返回零。如何检测您好 或হ্যালো ... 并使其可点击?修改代码以URL编码字符串,这样unicode字符就不会产生问题
NSString *textBlah = @"blah bleh bluh blih....";
- (void)hyperLinkAndColor:(NSString*)name withAttribute:(NSMutableAttributedString*)attributedText{
if ([textBlah rangeOfString:name].location != NSNotFound) {
NSRange rangeName = [textInformation rangeOfString:name];
NSString *urlString = [NSString stringWithFormat:@"linktink://?name=%@", name];
NSURL* url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[attributedText beginEditing];
[attributedText addAttribute:NSLinkAttributeName value:[url absoluteString] range:rangeName];
[attributedText addAttribute:NSForegroundColorAttributeName value:[UIColor orangeColor] range:rangeName];
[attributedText endEditing];
}
}
试试这个帖子,很高兴它能帮上忙!!快乐编码…: