无法在 UITextView 中使 URL 可点击

Posted

技术标签:

【中文标题】无法在 UITextView 中使 URL 可点击【英文标题】:Can't make URL clickable in UITextView 【发布时间】:2013-01-01 11:03:50 【问题描述】:

我正在使用 Interface Builder 来布局我的应用程序。我有一个 UITextView 包含一些文本,其中一部分是我希望使其可点击的 URL(例如启动浏览器)。我已经阅读了如何执行此操作并相信我做得正确,但是当 URL 显示为蓝色/可单击时,在 iPhone 模拟器中单击它不起作用。什么都没有发生。

我的控制器:

@interface FirstViewController : UIViewController <UISearchBarDelegate>
@property (nonatomic, retain) IBOutlet UITextView *review;
@end

在我的实现中,我 @synthesize review;(并且能够操作视图的文本,所以不要认为这是问题所在)。

在 IB 我有:

..然后当我去设置文本(并尝试使视图中的 URL 可点击)时,我会这样做:

self.review.text = content;
// My understanding is that this makes URLs clickable...
self.review.dataDetectorTypes = UIDataDetectorTypeLink;

...显示如下内容:

...它看起来真的很想工作,但是单击 URL 时没有任何反应。我错过了什么?

--更新--

尝试添加 self.review.editable = NO; 以响应 Dixit Patel 的回答,但没有解决问题:

self.review.text = content;
// My understanding is that this makes URLs clickable...
self.review.editable = NO; 
self.review.dataDetectorTypes = UIDataDetectorTypeLink;

【问题讨论】:

投反对票吧?很想知道为什么。 【参考方案1】:

选中文本视图中的“可选”和“链接”复选框属性检查器

【讨论】:

self.selectable = true @AntonTropashko 实际上故事板编辑器中有一个按钮。它在属性检查器中。【参考方案2】:

尝试使用这个希望对你有所帮助

默认情况下,UITextView 中的链接不可点击。但幸运的是,只需几行简单的代码即可启用它们:

self.review.editable = NO;//required
self.review.selectable = YES;//required
self.review.dataDetectorTypes = UIDataDetectorTypeLink;

很遗憾,您不能拥有带有可点击链接的可编辑UITextView。如果将 editable 设置为 YES,则所有链接都将被视为常规文本。

编辑

你有没有正确检查它可能在你的 .xib 文件中禁用了 UITextview。

【讨论】:

谢谢。添加了self.review.editable = NO;(已经有其他部分),但仍然无法正常工作。尝试在设置视图 text 之前和之后添加这些代码行。 @Madbreaks 让你正确检查它可能是 UITextview 在你的 .xib 文件中禁用。 问题是 User Interaction Enabled 没有在 IB 的 Attributes InspectorView 部分底部检查。感谢您让我走上正轨! 注意,你必须有textView.selectable = YES;才能工作!【参考方案3】:

问题在于 User Interaction Enabled 未在 IB 属性检查器的视图部分底部检查。

【讨论】:

你让我开心!

以上是关于无法在 UITextView 中使 URL 可点击的主要内容,如果未能解决你的问题,请参考以下文章

在 swift 中使 URL 链接属性和可点击以及可编辑的 Textview

是否有机会确定是否在 UITextView 中点击了空白空间?

在 Swift 中使 NavigationBar 子视图可点击

在 Reactstrap 中使整张卡片可点击

KIVY python:在python代码中使按钮可点击

如何在滚动视图中使 UIImage 低于 UILabel 或 UITextView