我正在创建一个字典查找应用程序。用户从UITableView中选择一个单词,应用程序显示定义。在某些情况下,这个单词将与另一个单词相似,所以我想显示“另请参阅:”,然后是一个类似单词的列表,当触摸时,会显示另一个定义。
在这里搜索UITextViews中的链接时,大多数答案涉及链接到网络,这不是我真正需要的。我只想在用户触摸单词时获得控制权,以便我可以更改视图。
UIWebView是唯一可以做到这一点的方法,还是我错过了SDK中显而易见的东西?此外,我更愿意留在原生SDK中,而不是走三条路线。
谢谢!
答案 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
}