2012-12-03 11 views
6

Używam w mojej aplikacji tekstu z niebieskim tłem.Problem z autokorektą z kolorowym UITextview

Po włączeniu autokorekty za każdym razem, gdy koryguje słowo, wokół słowa pojawia się białe pole i zmienia się również kolor tekstu.

Jakieś pomysły, jak zatrzymać ten efekt?

+0

Mam to samo pytanie i nie mogłem znaleźć odpowiedzi ... ktoś? Oferuję nagrodę za odpowiedź na to pytanie (która nie zostanie odrzucona ze sklepu z aplikacjami) – Cashew

+0

PRZYJDŹ! nawet komentarz? czy nikt nigdy nie używa autokorekty z kolorowym UITextView? czy to tylko ja (i OP) mam ten problem? Przynajmniej publikuj komentarz i powiedz "mam ten sam problem i myślę ..." – Cashew

+0

Przepraszamy. Zrobiłem trochę wyszukiwania i nie znalazłem żadnych przydatnych informacji. – JSuar

Odpowiedz

4

Nie, myślę, że nie można zmienić kolor nakładki lub textColor wyjęciu z pudełka ..

To jest trudna, jeśli umieścić punkt przerwania w - (void) layoutSubviews {..} swojego widzenia będziesz zobacz, jak UIKit narysował "UITextSelectionView" nad tekstem ...

Próbowałem podklas UITextView, aby zobaczyć, czy jego layoutSubviews się zwolnił i wygląda na to, że tak!

Więc starałem się usunąć nakładkę:

- (void) layoutSubviews { 
    [super layoutSubviews]; 

    for (UIView *subview in self.subviews) { 
     if ([NSStringFromClass([subview class]) isEqualToString:@"UITextSelectionView"]) { 
      DLog(@"Subview %@", [subview debugDescription]); 
      [subview removeFromSuperview]; 
      break; 
     } 
    } 
} 

I to działało .. ale to powoduje brak kursora i wyłączanie dowolnego wyboru :(

myślę, że trzeba wyłączyć Autokorekta ..

będę ponownie rozpocząć bounty jeśli ktoś znajdzie prawdziwą odpowiedź!

+0

Autokorekta jest koniecznością w mojej aplikacji, mogę " t wyłącz to. Wypróbuję twój kod i mam nadzieję, że coś wymyślę. dzięki za wysiłek. – Cashew

+0

Tak, pomyślałem sobie, powodzenia! Daj mi znać, jeśli coś znalazłeś! – Tieme

+0

:(wydaje się, że nie ma odpowiedzi, przyznam ci nagrodę, ponieważ szkoda byłoby pozwolić jej zmarnować – Cashew

0

To może mieć inne Efekty uboczne Obecnie badam, co jeszcze nazywa to, ale przesłonięcie firstRect (dla zakresu) w UITextView i zwracanie CGrect.Zero usuwa podświetlenie.

override public func firstRect(for range: UITextRange) -> CGRect { 
    return CGRect.zero; 
}