在 UITextView
中使超链接可点击是微不足道的。您只需在 IB 的 View 上设置“检测链接”复选框,它就会检测 HTTP 链接并将它们转换为超链接。
但是,这仍然意味着用户看到的是“原始”链接。 RTF 文件和 HTML 都允许您设置用户可读的字符串,并在其“后面”添加一个链接。
很容易将属性文本安装到 TextView (或 UILabel
或 UITextField
,就此而言。)但是,当属性文本包含链接时,它不可点击。
有没有办法让 UITextView
、UILabel
或 UITextField
中的用户可读文本可点击?
SO 上的标记有所不同,但这是大致的想法。我想要的是这样的文字:
This morph was generated with Face Dancer, Click to view in the app store.
我唯一能得到的是这个:
This morph was generated with Face Dancer, Click on http://example.com/facedancer to view in the app store.
最佳答案
使用 NSMutableAttributedString .
NSMutableAttributedString * str = [[NSMutableAttributedString alloc] initWithString:@"Google"];
[str addAttribute: NSLinkAttributeName value: @"http://www.google.com" range: NSMakeRange(0, str.length)];
yourTextView.attributedText = str;
编辑:
这与问题无关,只是为了澄清,UITextField
和 UILabel
不支持打开 URL。如果你想在链接中使用 UILabel
你可以查看 TTTAttributedLabel .
您还应该将 UITextView
的 dataDetectorTypes
值设置为 UIDataDetectorTypeLink
或 UIDataDetectorTypeAll
以在单击时打开 URL。或者您可以按照评论中的建议使用委托(delegate)方法。
关于ios - 如何在 NSAttributedString 中创建可点击链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21629784/