TTStyledTextLabel

Я пытаюсь заставить этот элемент управления работать с гипертекстовой ссылкой без особого успеха. Я посмотрел на TTCalaog и попытался повторить, но не работает.

У меня это работает, насколько отображение гипертекстовой ссылки, но он не срабатывает.

TTStyledTextLabel * label = [[[TTStyledTextLabel alloc] initWithFrame: CGRectMake (5, 0, 315, 175)] autorelease];

NSString * labelText = @ "Это должно работать";

label.text = [TTStyledText textFromXHTML: labelText lineBreaks: NO URLs: YES];

[self.view addSubview: label];

Мне кажется, я здесь упускаю смысл, возможно, из-за размещения URL-адреса Google? Я видел пост на этом форуме, в котором используется custom-uri://some/url, который затем настраивается в TTURLMap и TTNavigator, но мне нужно открыть URL-адрес из гипертекста в веб-представлении, поэтому мне нужен URL для запустить метод в моем классе, который создает мой контроллер веб-просмотра и т. д.

Я пытался настроить TTURLMap для работы без TTNavigator, но полностью замаринованный?

Любая помощь gratefullt приветствуется;-)

Спасибо

1 ответ

Я только что нашел решение, чтобы поймать нажатый URL на TTStyledTextLabel. Я надеюсь, что это может помочь и в вашем случае.

Это то, что я сделал.

1. Создать ТТНавигатор

    TTNavigator *navigator = [TTNavigator navigator];
    navigator.persistenceMode = TTNavigatorPersistenceModeNone;
    navigator.delegate = self;

2. Создайте TTNavigatorDelegate

Как вы назначили себя делегатом объекта навигатора. Поэтому, пожалуйста, не забудьте добавить протокол в файл заголовка.h, прежде чем продолжить.

В реализации создайте этот метод

    - (BOOL) navigator:(TTBaseNavigator *)navigator shouldOpenURL:(NSURL *)URL {
        // Now you can catch the clicked URL, and can do whatever with it
        // For Example: In my case, I take the query of the URL
        // If no query is available, let the app open the URL in Safari
        // If there's query, get its value and process within the app

        NSString *query = URL.query;

        if (query == nil) {
            return YES;
        } else {
            // process the query
        }
    }

Надеюсь, это поможет! Пожалуйста, проголосуйте за меня, если это поможет решить вашу проблему!

С уважением,

Танг

Другие вопросы по тегам