2011-09-30 33 views
1

我想知道是否有這樣的東西在那裏。但我基本上想要像UITextView這樣的東西來顯示帶有嵌入式鏈接的文本。但是,我希望能夠將URL點擊作爲代表進行處理。類似UITextView,但有能力處理URL點擊

我讀了幾個帖子像下面這樣:

How to intercept click on link in UITextView?

不過,我真的不希望重寫OpenURL方法。我的應用程序可以處理大量的webServer數據,並且我不想在openURL方法中爲不同的主機創建例外。

我想我的問題是,有沒有另一種方法來攔截點擊UITextView?

我的選擇是用UIScrollView編寫我自己的,並在其中使用TTTAttributedLabel(https://github.com/mattt/TTTAttributedLabel)。但我正在尋找建議或替代方案。

謝謝。

回答

1

您可以使用UIWebView + Local HTML代替UITextView。

,並使用 - (BOOL)webView的:(UIWebView的*)webView的shouldStartLoadWithRequest:(*的NSURLRequest)請求navigationType:(UIWebViewNavigationType)navigationType委託來處理URL點擊,如:

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

    NSURL * clickedURL=[request URL]; 

    //Do something here. 

    return NO; 

} 
+0

聽起來很有趣。你能評論更多關於本地html,我只是想顯示文本。我如何獲得一個NSString到UIWebview?我是否將NSString轉換爲NSData,然後使用「 - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL」方法?但我沒有baseURL。 – Yenyi

+0

您可以通過添加標記來簡單地生成HTML字符串。例如:NSString * originalText = @「Hello」; NSString * HTMLString = [NSString stringWithFormat:@「%@」,originalText];然後使用loadHTMLString方法,將HTMLString傳遞給字符串並將nil傳遞給baseURL ;-) – PeakJi