ios - 带有 URL 的 NSAttributedString 不起作用

标签 ios swift nsurl nsattributedstring

在一个 swift iOS 应用程序中,我设置了一个带有 NSAttributedString 的 UILabel。 AttributedString 包含一个用

设置的 URL
[NSLinkAttributeName:NSURL(string:urlStr)!].

一切看起来都很好,这意味着 URL 已明确设置,但当我点击它时没有任何反应。

我应该做些什么来使 URL 按预期工作(即启动 Safari)?

我尝试了以下但它根本没有效果。

theLabel.userInteractionEnabled = true

最佳答案

NSLinkAttribute 不适用于 UILabel,因为处理程序方法将仅响应 UItextViewDelegate。

您可以使用。 TTTAttributedLabel或者可以使用 UITextView 替换 UILabel。替换后同样使用

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

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

关于ios - 带有 URL 的 NSAttributedString 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31937116/

相关文章:

swift - session.dataTaskWithURL completionHandler 从未调用过

iOS 11 上缺少 iOS 应用程序图标

ios - VideoCore 使用变量问题

swift - 在单独的桌面中打开时在当前桌面上打开 Mac OSX 应用程序

ios - Alamofire:支持上传包含文本和文件部分的多部分表单吗?

ios - NSCurl ATS 工作,IOS 9 不工作

objective-c - NSURL 中未检测到垂直管道符号

ios - 以编程方式设置 IBInspectable

ios - 如何在 Storyboard 中的静态表格 View 底部添加按钮

android - 使用 MediaCodec 编码时,三分之二的屏幕为绿色