2016-06-18 2 views
6

Я хотел бы выделить часть текста в UITextView, например Pages for iOS или Safari для iOS do. Я ищу документацию, но не могу найти способ сделать это, может быть, потому, что я новичок в разработке iOS, и я пропускаю важную информацию. Кто-нибудь может мне помочь?Как выделить текст в текстовом окне в Swift?

Скриншот страницы для прошивки:

Pages for iOS

Скриншот Safari для прошивки:

Safari for iOS

+1

Вы попробовали это? http://stackoverflow.com/questions/26454037/uitextview-text-selection-and-highlight-jumping-in-ios-8 –

+0

I Vishnu gondlekar, спасибо за ссылку. Я бы предпочел не устанавливать NSAttributedString, я бы хотел использовать некоторые функции подсветки, если это возможно ... – Cue

+0

Hi Vishnu, комментарий Duncan C, заставляет меня понять, что доступное решение недоступно из-за моего незнания текста kit, поэтому в конце я использовал NSAttributedString, как вы предложили: «mainTextField.textStorage? .setAttributedString (attributedText.copy() as! NSAttributedString)« Спасибо. – Cue

ответ

1

Если вам нужно только выделить один, непрерывный блок текста, который вы можете установить выбор программно. Однако ваши примеры показывают несколько разрывных частей. Для этого вам понадобится использовать атрибутную строку. Нет другой функции подсветки, предоставленной системой. (Может быть, есть сторонняя библиотека, которая предлагает это, хотя вам придется искать.)

+0

Спасибо за ваш ответ Дункан С. Я прочитал [этот учебник] (https://www.raywenderlich.com/86205/nsregularexpression-swift-tutorial), где автор говорит: «Примечание. В вашем приложении используется свойство NSAttributedString UITextView для выделения результатов поиска. [...] Вы также можете реализовать функцию подсветки с помощью текстового набора, поэтому я решил, что существует альтернативный метод. – Cue

+1

Текстовый набор еще ниже, чем атрибутные строки. Да, вы могли бы это сделать, но я бы не рекомендовал его. –