iPh*_*e 7 2 iphone uitextview ios
我UITextView
从三个标签(message,titleUrl和url)中显示并显示文本.我需要的是,我想让"titleUrl"文本可点击以在Web视图中打开"url"的值.我设法直接从网址打开链接,但我需要点击"titleUrl"打开链接.我试图从这段代码中实现以下功能.
[self buildAgreeTextViewFromString:NSLocalizedString(@"I agree to the #<ts>terms of service# and #<pp>privacy policy#",
@"PLEASE NOTE: please translate \"terms of service\" and \"privacy policy\" as well, and leave the #<ts># and #<pp># around your translations just as in the English version of this message.")];
Run Code Online (Sandbox Code Playgroud)
但我不知道如何修改它来实现功能.我想在字符串中输入值,没有要输入的静态文本.任何人都可以指导我处理这件事吗?
更新:
NSString *message = [NSString stringWithFormat:@"%@\n ", tempStr1];
NSString *message1 = [NSString stringWithFormat:@"\n#<pp>%@#", titlStr1];
NSString *localizedString = NSLocalizedString(message1, nil);
NSRange ppRange = [localizedString rangeOfString:NSLocalizedString(message1, nil) options:NSCaseInsensitiveSearch];
NSURL *ppURL = [NSURL URLWithString:strUrl];
NSDictionary *attribute1 = @{NSForegroundColorAttributeName: [UIColor whiteColor],
NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue" size:15.0],
};
NSMutableAttributedString *newAttString = [[NSMutableAttributedString alloc] initWithString:message attributes:attribute1];
//
NSMutableAttributedString *finalMessage = [[NSMutableAttributedString alloc] initWithString:localizedString];
[finalMessage beginEditing];
[finalMessage addAttributes:attribute1 range:ppRange];
[finalMessage addAttribute:NSLinkAttributeName value:ppURL range:ppRange];
[finalMessage endEditing];
[newAttString appendAttributedString:finalMessage];
self.txtView.attributedText = newAttString;
Run Code Online (Sandbox Code Playgroud)
这就像使用一样简单NSMutableAttributedString
.注意:这不是唯一的方法,这可以通过搜索范围等来完成,这只是一个简单的实现,可以让你找到正确的方向,因为你有静态消息,因为你本地化所有这些,这意味着你有静态的英文形式.
NSString *tosString = @"Terms of Service";
NSString *ppString = @"Privacy Policy";
NSString *message = [NSString stringWithFormat:@"I agree to the #<ts>%@# and #<pp>%@#", tosString, ppString];
NSString *localizedString = NSLocalizedString(message, nil);
NSRange tosRange = [localizedString rangeOfString:NSLocalizedString(tosString, nil) options:NSCaseInsensitiveSearch];
NSRange ppRange = [localizedString rangeOfString:NSLocalizedString(ppString, nil) options:NSCaseInsensitiveSearch];
NSURL *tosURL = [NSURL URLWithString:@"http://toslink.com"];
NSURL *ppURL = [NSURL URLWithString:@"http://pplink.com"];
NSMutableAttributedString *finalMessage = [[NSMutableAttributedString alloc] initWithString:localizedString];
[finalMessage beginEditing];
[finalMessage addAttribute:NSLinkAttributeName value:tosURL range:tosRange];
[finalMessage addAttribute:NSLinkAttributeName value:ppURL range:ppRange];
[finalMessage endEditing];
self.yourTextView.attributedText = finalMessage;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4772 次 |
最近记录: |