在一个快速的iOS应用程序中,我已经设置了一个带有NSAttributedString的UILabel。 AttributedString包含一个使用
设置的URL[NSLinkAttributeName:NSURL(string:urlStr)!].
所有内容都显示正常,这意味着网址设置明确,但当我点击它时没有任何反应。
我是否应该做一些让人们期望的URL(即fire Safari)?
我尝试了以下但它根本没有效果。
theLabel.userInteractionEnabled = true
答案 0 :(得分:4)
NSLinkAttribute不能与UILabel一起使用,因为处理程序方法将仅响应UItextViewDelegate。
你可以使用。 TTTAttributedLabel或者可以使用UITextView替换UILabel。更换相同用途后
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange
不要忘记检查检测和行为属性。
答案 1 :(得分:1)
试试这段代码:
var str: NSMutableAttributedString = NSMutableAttributedString(string: "Google")
str.addAttribute(NSLinkAttributeName, value: "http://www.google.com", range: NSMakeRange(0, str.length))
yourLabel.attributedText = str
这不是直接关于这个问题,只是为了澄清,UITextField和UILabel
不支持打开网址。如果您想使用UILabel
链接,可以查看TTTAttributedLabel。
此外,您应将UITextView
的dataDetectorTypes值设置为UIDataDetectorTypeLink
或UIDataDetectorTypeAll
,以便在点击时打开网址。或者您可以使用评论中建议的委托方法。