1

在我正在编写的应用程序中,我认为如果用户可以点击 UILabel 并且我可以看到他们点击了哪个词,那将是最好的。无论如何我可以做到这一点吗?

4

2 回答 2

2

你可以使用UIWebview

采用

- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;

并对整个消息进行编码,然后将链接包装到

[webView.loadHTMLString:@"<a href="tap:Google">Google</a>" baseURL:nil];

然后在委托方法中

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

你会知道你点击了哪个词

   if ( [request.URL.scheme compare:FeverProtocolIdentifier] == NSOrderedSame ) 
    {    
        NSString *word = request.URL.resourceSpecifier;
    }
于 2012-04-18T03:15:37.333 回答
1

我不认为这很容易。我可能会使用OHAttributedLabel而不是 UILabel 并向 OHAttributedLabel 代码添加一个方法来返回您需要的信息。如果您查看 OHAttributedLabel.m 中的 linkAtPoint 方法您会看到您需要做什么。我会复制该方法,也许将新的命名为characterOffsetAtPoint,然后返回现有代码在第 340 行计算的索引。

于 2012-04-18T02:55:55.917 回答