Я хочу, чтобы некоторые слова в моем OHAttributedLabel были ссылками, но я хочу, чтобы они были другого цвета, кроме синего, и мне не нужно подчеркивание.
Это дает мне синюю ссылку с подчеркнутым текстом:
-(void)createLinkFromWord:(NSString*)word withColor:(UIColor*)color atRange:(NSRange)range{
NSMutableAttributedString* mutableAttributedText = [self.label.attributedText mutableCopy];
[mutableAttributedText beginEditing];
[mutableAttributedText addAttribute:kOHLinkAttributeName
value:[NSURL URLWithString:@"http://www.somewhere.net"]
range:range];
[mutableAttributedText addAttribute:(id)kCTForegroundColorAttributeName
value:color
range:range];
[mutableAttributedText addAttribute:(id)kCTUnderlineStyleAttributeName
value:[NSNumber numberWithInt:kCTUnderlineStyleNone]
range:range];
[mutableAttributedText endEditing];
self.label.attributedText = mutableAttributedText;
}
Поскольку я использую OHAttributedLabel, я также пытался использовать методы в его категории NSAttributedString+Attributes.h
, но они также возвращают подчеркнутые синим цветом ссылки:
-(void)createLinkFromWord:(NSString*)word withColor:(UIColor*)color atRange:(NSRange)range{
NSMutableAttributedString* mutableAttributedText = [self.label.attributedText mutableCopy];
[mutableAttributedText setLink:[NSURL URLWithString:@"http://www.somewhere.net"] range:range];
[mutableAttributedText setTextColor:color range:range];
[mutableAttributedText setTextUnderlineStyle:kCTUnderlineStyleNone range:range];
self.label.attributedText = mutableAttributedText;
}
Если я закомментирую строку, устанавливающую ссылки в каждой версии, текст будет окрашен в соответствии с тем, что я передаю - это работает. Просто кажется, что установка ссылки отменяет это и возвращает ее к синему цвету.
К сожалению, на странице документов Apple, которую я нашел, показано, как сделать текст ссылки синим цветом и подчеркнуть его, а именно то, что мне не нужно: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/AttributedStrings/Tasks/ChangingAttrStrings.html