Ios URL无效的NSAttributedString
在swift iOS应用程序中,我设置了一个UILabel,上面有一个NSAttribute字符串。 AttributedString包含一个带有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
[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