Вопрос

Я хочу использовать приписанные строки с NSLinkAttributeName Чтобы создать кликабельные ссылки внутри UILabel экземпляр в моем проекте iOS 7, который теперь, наконец, возможно без использования внешних библиотек.

NSURL *url = [NSURL URLWithString:@"http://www.google.com"];

NSDictionary *attr = [NSDictionary dictionaryWithObjectsAndKeys:
                          url, NSLinkAttributeName, nil];

Применение атрибута на строке отображает текст как синий и подчеркнутый, но ничего не происходит в Click/Tap. Пользовательское взаимодействие включено для метки. Кто -нибудь знает, как это сделать? Спасибо!

Это было полезно?

Решение

Теперь я могу ответить на свой собственный вопрос: я использую UITextView вместо UILabel в настоящее время. Я отформатировал UITextView смотреть и вести себя как мои этикетки и добавить:

UITextView *textView = [[UITextView alloc] init];
textView.scrollEnabled = NO;
textView.editable = NO;
textView.textContainer.lineFragmentPadding = 0;
textView.textContainerInset = UIEdgeInsetsMake(0, 0, 0, 0);
textView.delegate = self;

Не забудьте установить делегата, вы должны реализовать UITextViewDelegate! Теперь мы реализуем метод делегата:

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)url inRange:(NSRange)characterRange
{
     return YES;
}

Это автоматически открывает предоставление NSURL-Поспользуя из приписанной строки в моем вопросе на щелчке/нажмите.

Помните: это работает только на iOS 7, для устаревшей поддержки вам нужны внешние библиотеки

ОБНОВИТЬ:

Делая UITextViewВ конце концов, как эти лейблы ведут, и я наткнулся на некоторые отвратительные ios-behaviours. Я закончил тем, что использовал Tttattributedlabel библиотека, которая просто великолепна и позволила мне использовать этикетки вместо UITextViewс

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top