Ссылки не работают в UITextView Attributed String, когда язык является арабским - PullRequest
0 голосов
/ 31 марта 2020

Мы реализовали код для добавления ссылки на весь атрибутивный текст внутри UITextView.

Загружаемые строки:

Engli sh Строка: «Нажмите здесь, чтобы посмотреть», арабский c Строка: «انقر هنا للعرض»

func setupTextView() {
  let mutableAttributedString = NSMutableAttributedString(string: "")
  let attributedString = NSAttributedString(string: {string value}, attributes: 
  [NSAttributedString.Key.foregroundColor:Colors.gray_3_748499])
  mutableAttributedString.append(attributedString)
  mutableAttributedString.addAttribute(NSAttributedString.Key.link, value: 
    "https://www.google.com", range: NSMakeRange(0, self.attributedString.length))

  self.textView.attributedText = mutableAttributedString
}

Результат: мы видим, что для всех других требуемых языков при щелчке по тексту вызывается делегат textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction), но не для арабского c.

Ждем ценных предложений.

1 Ответ

0 голосов
/ 03 апреля 2020

Я получил вопрос. Я переопределяю метод

func point(inside point: CGPoint, with event: UIEvent?) -> Bool

, чтобы игнорировать касания в любом месте, но не ссылки в текстовом представлении.

Я использовал UITextLayoutDirection, оставленный внутри этого метода , Мне пришлось изменить его в соответствии с выравниванием для разных языков. То есть для языков справа налево, я буду использовать UITextLayoutDirection.Right.

Спасибо

...