Доступная ссылка с включенным автоопределением без общей ссылки URL - PullRequest
0 голосов
/ 18 февраля 2019

Я использую автоопределение (dataTypes = .link) для обнаружения ссылки в моем UITextView.Я хочу определить только свою пользовательскую ссылку (пользовательская схема: // some / link / path) и не хочу определять общий URL (http://somepage.net или https://theotherpage.com).

в textView (_ textView, shouldInteractWith ...) функция делегата UITextView, можно было обрабатывать только с пользовательской ссылкой и ничего не делать с общими URL-адресами. Однако обнаруженный цвет ссылок синий, включая общий.

Я пробовал...

  • a. TextView.tintcolor = UIColor.nonBlueColor
  • b. TextView.linkTextAttributes = linkAttributes (в linkAttributes .foregroundColor установлено)
  • c.mutableAttributed.addAttribute (.foregroundColor, значение: UIColor.blue, range: range) ... c с помощью a или b.

Но, a и b изменили весь цвет (не конкретная ссылка).

И, c не изменил цвет вообще. Кажется, автоопределение и настройка tintColor по умолчанию имеют более высокий приоритет.

for tag in comment.tags.map({ "#" + $0 }) {
    let range = (text as NSString).range(of: tag)
    // non-English characters should be encoded with PercentEncoding
    if let encoded = tag.dropFirst().addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
        if let link = NSURL(string: "custom-scheme://hashtag/" + encoded) {
            mutableAttributed.addAttribute(.link, value: link, range: range)
            mutableAttributed.addAttribute(.foregroundColor, value: UIColor.red, range: range)
        }
    } else {
            log.writeError(msg: "encoding to percent string failed")
            if let link = NSURL(string: "custom-scheme://hashtag/" + tag.dropFirst()) {
                mutableAttributed.addAttribute(.link, value: link, range: range)
        }
    }
}

Я ожидаю

  • Пользовательские ссылки (custom-схема: // some / page) имеют цвет не по умолчанию (for пример синий)
  • другие ссылки (http://xxx, https://xxxx) имеют цвет по умолчанию (например, черный)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...