UITextView中简单链接的最佳方法

时间:2009-08-20 12:44:25

标签: iphone linker hyperlink uitextview

我正在创建一个字典查找应用程序。用户从UITableView中选择一个单词,应用程序显示定义。在某些情况下,这个单词将与另一个单词相似,所以我想显示“另请参阅:”,然后是一个类似单词的列表,当触摸时,会显示另一个定义。

在这里搜索UITextViews中的链接时,大多数答案涉及链接到网络,这不是我真正需要的。我只想在用户触摸单词时获得控制权,以便我可以更改视图。

UIWebView是唯一可以做到这一点的方法,还是我错过了SDK中显而易见的东西?此外,我更愿意留在原生SDK中,而不是走三条路线。

谢谢!

2 个答案:

答案 0 :(得分:2)

我会使用另一个UITableView来完成这项工作。您的类似字词列表可能已经采用NSArray格式,因此设置另一个UITableView代替UITextView以显示列表非常容易,并且鉴于您已经让此代码适用于主UITableView,您已经知道如何使它们可以点击!

答案 1 :(得分:2)

我担心,UIWebView将是唯一适合的地方。数据检测器是链接UITextView内部的唯一方式,它们只响应相应的数据类型(电话号码,网页,地址)......

链接可以正常方式完成:

<a href='http://someotherword'>someotherword</a>

设置webviewdelegate以阻止任何链接请求(并阻止它们在浏览器中打开),以便您可以在自己的处理程序中打开它们:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
{
  if(navigationType == UIWebViewNavigationTypeOther) return YES; // Allow direct loading

  NSString *myWord = [[request URL] host];
  // do something with myWord... say open another word
  return NO; // Don't let the browser actually perform this navigation
}