Mam UITextView *_masterText
i po wywołaniu metody setText
jest resetowana czcionka właściwości. Dzieje się to po zmianie sdk 7. _masterText jest IBOutlet
globalne, a właściwości są ustawione w scenorysie. To tylko ja czy to ogólny błąd SDK?
@interface myViewController : UIViewController
{
IBOutlet UITextView *_masterText;
}
@implementation myViewController
-(void)viewWillAppear:(BOOL)animated
{
[_masterText setText:@"New text"];
}
ios
cocoa-touch
fonts
uitextview
Błażej
źródło
źródło
Natknąłem się na ten sam problem (na Xcode 6.1) i podczas odpowiedzi Johna Cogana zadziałała dla mnie, stwierdziłem, że rozszerzenie klasy UITextView o kategorię było lepszym rozwiązaniem dla mojego konkretnego projektu.
berło
realizacja
źródło
extension UITextView { func setSafeText(text: String){ let originalSelectable = selectable selectable = true self.text = text selectable = originalSelectable } }
Jeśli chcesz, aby Twój widok tekstu był „tylko do odczytu”, możesz zaznaczyć Edytowalne i Wybieralne oraz odznaczyć opcję Interakcja z użytkownikiem Włączona, z tym UITextView zachowywał się tak, jak chciałem
źródło
Gdyby ten problem i powyższa odpowiedź pomogły, ale dodałem otokę do mojego kodu ViewController w następujący sposób i po prostu przekazałem wystąpienie uiview i tekst do zmiany, a funkcja opakowania włącza wartość Selectable, zmienia tekst, a następnie wyłącza ją ponownie. Przydatne, gdy chcesz, aby uitextview był domyślnie wyłączony przez cały czas.
źródło
EDYTOWAĆ :
Ustawienie czcionki dla UITextView w iOS 7 działa dla mnie, jeśli najpierw ustawisz tekst, a następnie ustawisz czcionkę:
W pliku XIB, jeśli dodasz tekst w swoim UITextView i zmienisz czcionkę lub kolor, to zadziała.
źródło
Oto szybkie rozwiązanie podklasy, którego często używam w przypadku tego problemu.
źródło
Ten problem powrócił w Xcode 8. Oto jak go naprawiłem:
Zmieniono rozszerzenie na:
i zaznaczono opcję Wybieralne w programie Interface Builder.
Posiadanie tego „wybieralnego” parametru nie jest zbyt eleganckie, ale wystarczy.
źródło
W iOS 8.3 obejście ustawienia „selectable” na YES przed setText i NO po, nie rozwiązało tego problemu.
Zauważyłem, że muszę ustawić opcję „do wyboru” na TAK w scenorysie, zanim to zadziała.
źródło
To zadziałało dla mnie:
źródło
Dla mnie z przypisanym tekstem wystarczyło ustawić czcionkę w słowniku atrybutów, zamiast ustawiać ją we własnym polu.
źródło
Mam ten problem. Szybkie i przyjazne rozwiązanie odpowiedzi @Ken Steele. Rozszerzam UITextView i dodaję właściwość obliczoną.
mam nadzieję, że to pomoże.
źródło
Minęły już 3 lata, a błąd nadal istnieje w najnowszej stabilnej wersji Xcode (7.3). Najwyraźniej Apple nie naprawi tego w najbliższym czasie, pozostawiając programistom dwie opcje: pozostawienie wyboru włączonego i ustawienie UserInteractionEnabled na false lub swizzling Method.
Jeśli masz przycisk na swoim textView, pierwszy nie wystarczy.
Szybkie rozwiązanie wymagające zmiany kodu:
Cel C:
źródło
Korzystając z obejścia omówionego w tym problemie, to rozszerzenie UITextView udostępnia
setTextInCurrentStyle()
funkcję. Oparty na rozwiązaniu Alessandro Ranaldiego, ale nie wymaga przekazywania bieżącej wartości isSelectable do funkcji.źródło