Изменить цвет ссылок UITextView с помощью фильтра? - PullRequest
3 голосов
/ 31 августа 2011

Обнаруженные ссылки в UITextView всегда синие. Там нет никакого способа напрямую изменить это. Но могу ли я наложить какой-то фильтр, который меняет синий цвет, например, на красный?

Ответы [ 3 ]

6 голосов
/ 31 июля 2012

Существует способ сделать это с помощью частного API .

A UITextView имеет (одно) подпредставление класса UIWebDocumentView с селектором setUserStyleSheet:.

Следующий код должен изменить цвет ссылок на зеленый.По крайней мере, у меня это сработало!:)

for (UIView *subview in textView.subviews) {
    [subview setUserStyleSheet:@"a { color: #00FF00; }"];
}

Я знаю, что действительно поздно, но часы Googling не дали мне места, поэтому я решил поделиться этим.

3 голосов
/ 31 августа 2011

Нет практического способа сделать это с помощью 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, чтобы это работало.

1 голос
/ 25 февраля 2013

UIwebDocumentView имеет отсутствующий селектор. Импортируйте UIWebDocumentView.h, чтобы получить его. К сожалению, это частный API, и Apple может отклонить yourapp: - (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...