В моем приложении я создал расширение для UILabel, который содержит следующий метод:как я могу сделать hashtags интерактивным в UILabel в Swift 3?
func formatTextInLabel() {
let text = self.text
let font = UIFont(name: fontName, size: 16.0)
let titleDict: NSDictionary = [NSFontAttributeName: font!]
// This will give me an attributedString with the desired font
let attributedString = NSMutableAttributedString(string: text!, attributes: titleDict as! [String : AnyObject])
let regex = try? NSRegularExpression(pattern: "#(\\w+)", options: [])
let matches = regex!.matches(in: text!, options: [], range: NSMakeRange(0, text!.characters.count))
for match in matches {
let matchRange = match.rangeAt(0)
let titleDict: NSDictionary = [NSForegroundColorAttributeName: orangeColor]
attributedString.addAttributes(titleDict as! [String : AnyObject], range: matchRange)
}
self.attributedText = attributedString
}
и выдвигает на первый план все #hashtags
в моем выбранном цвете. Но они не доступны для просмотра, я нашел сообщение на SO, в котором говорится, что достичь невозможно: How to detect and make hyperlinks/mentions/hashtags clickable in UILabel?, но, похоже, он устарел (надеюсь). Можете ли вы дать мне подсказку, как я могу, например. отобразить в консоли имя выбранного хэштега?
Еще одна вещь, которую нужно добавить - я знаю некоторые pod
, например ActiveLabel
или аналогичные, но я пробовал их и имел проблемы с ограничениями в моем случае, поэтому я хочу добиться этого эффекта из своего собственного кода.
обратитесь к [this] (https://github.com/optonaut/ActiveLabel.swift) для hashtag –