Как сделать (#text) кликабельным в веб-просмотре или текстовом просмотре? - PullRequest
0 голосов
/ 09 ноября 2009

У меня есть текстовый коминс: «Это очень хорошо #thing», я хочу, чтобы текст «#» был другого цвета, и нажатие на него должно открыть новый вид.

Ответы [ 2 ]

2 голосов
/ 09 ноября 2009

Вам нужно использовать UIWebView и сделать интерактивные привязки элементов HTML активными, а затем отслеживать загрузку ссылок в методе UIWebViewDelegate shouldStartLoadWithRequest

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL* u = [request URL];

    if( [[u scheme] isEqualToString:@"showlicenses"] ) {
        NSString *path = [[NSBundle mainBundle] 
            pathForResource:@"credits" ofType:@"html" inDirectory:@"help"];

        LicensesWebviewController *vc = [[LicensesWebviewController alloc] initWithURL:[NSURL fileURLWithPath:path]];
        vc.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
        [self presentModalViewController:vc animated:YES];
        [vc release];

        return NO; // DO NOT attempt to load URL
    }

    return YES; // if you want to allow the URL to load
}

Вам необходимо установить делегата в вашем UIWebView.

myWebView.delegate = self;

Поэтому, когда в моей HTML-странице появляется ссылка в формате «showLicenses: // blahblah», я нажимаю новый контроллер представления.

Вы можете использовать любые типы ссылок, которые вам нужны, вам просто нужно изучить и отловить те, которые вы хотите обработать внутри. например, "myscheme: /// do / что-то / with / this / link"

0 голосов
/ 09 ноября 2009

Если вы используете UIWebView, у вас есть доступная HTML-разметка. Таким образом, вы можете сделать что-то вроде этого:

NSString *html = @"This is a very nice <font color=\"green\">#thing</font>";
[myWebView loadHTMLString:html baseURL:[NSURL URLWithString: @"http://localhost"]];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...