2016-06-18 669 views
6

Chciałbym podświetlić część tekstu w UITextView jak Strony dla iOS lub Safari dla iOS. Przeszukuję dokumentację, ale nie mogę znaleźć sposobu, aby to zrobić, może dlatego, że jestem początkującym programistą w iOS i brakuje mi istotnych informacji. Ktoś może mi pomóc?Jak wyróżnić tekst w tekście w Swift?

ekranu stron na iOS:

Pages for iOS

Zrzut ekranu z przeglądarki Safari na iOS:

Safari for iOS

+1

Wypróbowałeś to? http://stackoverflow.com/questions/26454037/uitextview-text-selection-and-highlight-jumping-in-ios-8 –

+0

I Vishnu gondlekar, dziękuję za link. Wolałbym unikać ustawiania NSAttributedString, chciałbym użyć funkcji podświetlania, jeśli to możliwe ... – Cue

+0

Cześć Wisznu, komentarz Duncana C sprawił, że zrozumiałem, że nie ma łatwego rozwiązania dostępnego z powodu mojego braku znajomości tekstu kit, więc na końcu użyłem NSAttributedString jak zasugerowałeś: "mainTextField.textStorage? .setAttributedString (attributedText.copy() as! NSAttributedString)" Dziękuję. – Cue

Odpowiedz

1

Jeśli trzeba tylko zaznaczyć pojedynczy, ciągły blok tekstu można ustawić wybór programowo. Twoje przykłady pokazują jednak wiele nieciągłych części. Do tego będziesz musiał użyć przypisanego ciągu. Nie ma innej funkcji podświetlania przewidzianej przez system. (Może być jednak trzecia biblioteka, która to oferuje - musisz przeszukać.)

+0

Dziękuję za odpowiedź Duncan C. Przeczytałem [ten samouczek] (https://www.raywenderlich.com/86205/nsregularexpression-swift-tutorial), w którym autor mówi: "Uwaga: Twoja aplikacja używa właściwości NSAttributedString UITextView aby podświetlić wyniki wyszukiwania. [...] Możesz również zaimplementować funkcję podświetlania przy użyciu zestawu tekstowego ", więc pomyślałem, że istnieje alternatywna metoda. – Cue

+1

Zestaw tekstowy jest jeszcze niższy niż przypisane ciągi. Tak, możesz to zrobić, ale nie poleciłbym tego. –