使用过滤器更改UITextView链接的颜色?

时间:2011-08-31 11:47:38

标签: iphone objective-c ios filter uitextview

UITextView上检测到的链接始终为蓝色。没有办法直接改变这个。但是我可以覆盖一些变蓝的过滤器,例如红色吗?

3 个答案:

答案 0 :(得分:6)

实际上有一种方法可以使用私有API

UITextView有一个({1}}的(单个)子视图,其中包含选择器UIWebDocumentView

以下代码应将链接的颜色更改为绿色。至少,它对我有用! :)

setUserStyleSheet:

我知道这已经很晚了,但谷歌搜索的时间让我无处可去,所以我想我会分享这个。

答案 1 :(得分:3)

使用UITextView没有实际的方法,您可以尝试使用UIWebView更改其“自动检测链接”属性,然后重新格式化HTML。

UIWebView *webView = [[UIWebView alloc] init];
webText.delegate = self;
[webView setDataDetectorType:UIDataDetectorTypeLink];

NSString * htmlString = [NSString stringWithFormat:@"<html><head><script> document.ontouchmove = function(event) { if (document.body.scrollHeight == document.body.clientHeight) event.preventDefault(); } </script><style type='text/css'>* { margin:0; padding:0; } p { color:black; font-family:Helvetica; font-size:14px; } a { color:#000000; text-decoration:underline; }</style></head><body><p>%@</p></body></html>", [update objectForKey:@"text"]];

[webText loadHTMLString:htmlString baseURL:nil];

或类似的东西。

希望这有帮助。

修改

不要忘记为此工作实现UIWebView委托。

答案 2 :(得分:1)

UIwebDocumentView有缺少的选择器。 导入UIWebDocumentView.h来获取它。 不幸的是,这是一个私有API,yourapp可能会被Apple拒绝: - (