Ios URL无效的NSAttributedString

Ios URL无效的NSAttributedString,ios,swift,nsurl,nsattributedstring,Ios,Swift,Nsurl,Nsattributedstring,在swift iOS应用程序中,我设置了一个UILabel,上面有一个NSAttribute字符串。 AttributedString包含一个带有 [NSLinkAttributeName:NSURL(string:urlStr)!]. 一切看起来都很好,这意味着URL已明确设置为这样,但当我点击它时,什么也没有发生 我应该做些什么来让URL像人们期望的那样工作(比如FireSafari) 我尝试了以下方法,但毫无效果 theLabel.userInteractionEnabled = tru

在swift iOS应用程序中,我设置了一个UILabel,上面有一个NSAttribute字符串。 AttributedString包含一个带有

[NSLinkAttributeName:NSURL(string:urlStr)!].
一切看起来都很好,这意味着URL已明确设置为这样,但当我点击它时,什么也没有发生

我应该做些什么来让URL像人们期望的那样工作(比如FireSafari)

我尝试了以下方法,但毫无效果

theLabel.userInteractionEnabled = true
请尝试以下代码:

var str: NSMutableAttributedString = NSMutableAttributedString(string: "Google")
        str.addAttribute(NSLinkAttributeName, value: "http://www.google.com", range: NSMakeRange(0, str.length))
        yourLabel.attributedText = str
这与问题无关,只是为了澄清,UITextField和
UILabel
不支持打开URL。如果要将
UILabel
与链接一起使用,可以进行检查

您还应该将
UITextView
的dataDetectorTypes值设置为
UIDataDetectorTypeLink
UIDataDetectorTypeAll
以在单击时打开URL。或者,您可以使用注释中建议的委托方法。

尝试以下代码:

var str: NSMutableAttributedString = NSMutableAttributedString(string: "Google")
        str.addAttribute(NSLinkAttributeName, value: "http://www.google.com", range: NSMakeRange(0, str.length))
        yourLabel.attributedText = str
这与问题无关,只是为了澄清,UITextField和
UILabel
不支持打开URL。如果要将
UILabel
与链接一起使用,可以进行检查


您还应该将
UITextView
的dataDetectorTypes值设置为
UIDataDetectorTypeLink
UIDataDetectorTypeAll
以在单击时打开URL。或者,您可以按照注释中的建议使用委托方法。

NSLinkAttribute无法使用UILabel,因为处理程序方法将仅响应UItextViewDelegate

你可以使用。或者可以使用UITextView替换UILabel。更换后同样使用

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

不要忘记检查检测和行为属性。

NSLinkAttribute不能与UILabel一起使用,因为处理程序方法将只响应UItextViewDelegate

你可以使用。或者可以使用UITextView替换UILabel。更换后同样使用

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

别忘了检查检测和行为属性。

没有得到你想要的。如果你想点击控制,为什么不把按钮,而不是标签?看看好。我有一个标签上的文本,它将是方便的,只是有一部分的文本可以点击,而不必作出具体的组成部分。我正在寻找最简单的方法。使用UITextView并遵循@Undeph answer,不要得到你想要的。如果你想点击控制,为什么不把按钮,而不是标签?看看好。我有一个标签上的文本,它将是方便的,只是有一部分的文本可以点击,而不必作出具体的组成部分。我正在寻找最简单的方法。使用UITextView并遵循@Undeph answeruse this library@Michel使用this library@Michel