将文本链接添加到TextView

时间:2013-09-15 21:23:01

标签: ios uitextview

是否可以在TextView中添加文本链接?我希望链接可能表现得像一个按钮,我可以在其中为其指定一个动作。

编辑:当我说分配一个动作时,我的意思是实际上在代码中给它一些东西。我想知道是否可以在文本中动态添加“按钮”,我可以为其分配编码操作。

直播方案

想想像字典应用程序这样的东西。也许一个单词的定义使用另一个单词,你可能不知道它的定义,因此能够点击该单词立即搜索它而不必输入它将是一个很好的用户友好功能。但是,我觉得这似乎不太可能。

5 个答案:

答案 0 :(得分:1)

我建议使用Nimbus的NIAttributedLabel,这是一个开源的iOS库。您可以指定链接的文本范围,并在用户点击时发送委托消息。

主要的Nimbus网站:http://nimbuskit.info/

NIAttributedLabel docs:http://docs.nimbuskit.info/interface_n_i_attributed_label.html

答案 1 :(得分:0)

检查器中的

,转到“文本视图属性”选项卡,然后确保"检测链接"检查。

答案 2 :(得分:0)

是的,你可以。将URL添加到文本视图中,然后打开Attributes Inspector。你会在那里看到一个选项来检测链接。

enter image description here

答案 3 :(得分:0)

我知道一种方法,但它有很多工作要做。首先,您有一个NSAttributedString,您可以显示文本视图。其次,将您想要成为按钮的文本范围归属。第三,将轻击手势识别器分配给文本视图,并在识别器调用的方法中,您将使用核心文本来确定是否在表示按钮的文本范围内发生了敲击。

继承人如何使用核心文本:使用属性字符串创建框架集。使用方形的形状从framsetter创建一个框架,该方形是文本视图的框架,由文本视图的填充插入。框架将允许您获取文本视图中每一行的y原点,并且一旦您知道该点击发生在哪一行,您就可以使用该行然后通过给出它来确切地确定在该行上点击了哪个字符x偏移量。一旦知道了行上的字符索引,就可以将它添加到行的范围的开头,并获得整个字符串中字符的索引。然后,您可以检查它是否在您的按钮文本范围内。如果是,则可以调用方法来模拟目标操作类型行为。

我已经解释了如何完成这个过程并指定了你需要什么样的核心文本对象,让你查看具体的api细节:

https://developer.apple.com/library/mac/documentation/Carbon/Reference/CoreText_Framework_Ref/_index.html#//apple_ref/doc/uid/TP40005304

您还可以使用我的objc核心文本包装器: https://github.com/mysterioustrousers/MYSCoreText

答案 4 :(得分:0)

CoreText怎么样?它可以绘制多种文本。