Ich habe UITextView *_masterText
und nach dem Aufruf Methode setText
Eigenschaft Schriftart wird zurückgesetzt. Es passiert, nachdem ich SDK 7 geändert habe. _MasterText ist IBOutlet
global und die Eigenschaften werden im Storyboard festgelegt. Es ist nur ich oder das ist ein allgemeiner SDK-Fehler?
@interface myViewController : UIViewController
{
IBOutlet UITextView *_masterText;
}
@implementation myViewController
-(void)viewWillAppear:(BOOL)animated
{
[_masterText setText:@"New text"];
}
ios
cocoa-touch
fonts
uitextview
Błażej
quelle
quelle
Ich bin auf dasselbe Problem gestoßen (auf Xcode 6.1), und während John Cogans Antwort für mich funktionierte, fand ich, dass die Erweiterung der UITextView-Klasse um eine Kategorie eine bessere Lösung für mein spezielles Projekt war.
Schnittstelle
Implementierung
quelle
extension UITextView { func setSafeText(text: String){ let originalSelectable = selectable selectable = true self.text = text selectable = originalSelectable } }
Wenn Sie möchten, dass Ihre Textansicht "schreibgeschützt" ist, können Sie "Bearbeitbar" und "Auswählbar" aktivieren und die Option "Benutzerinteraktion aktiviert" deaktivieren. Damit hat sich die UITextView wie gewünscht verhalten
quelle
Hatte dieses Problem selbst und die obige Antwort geholfen, aber ich habe meinem ViewController-Code wie folgt einen Wrapper hinzugefügt und einfach die zu ändernde uiview-Instanz und den zu ändernden Text übergeben. Die Wrapper-Funktion schaltet den auswählbaren Wert ein, ändert den Text und schaltet ihn dann wieder aus. Hilfreich, wenn die uitextview standardmäßig immer deaktiviert sein muss.
quelle
EDIT:
Das Festlegen der Schriftart für UITextView in iOS 7 funktioniert für mich, wenn Sie zuerst den Text und danach die Schriftart festlegen:
Wenn Sie in einer XIB-Datei Text in Ihre UITextView einfügen und die Schriftart oder Farbe ändern, funktioniert dies.
quelle
Hier ist eine schnelle Unterklassenlösung, die ich häufig für dieses Problem verwende.
quelle
Dieses Problem ist in Xcode 8 erneut aufgetreten. So habe ich es behoben:
Die Erweiterung wurde geändert in:
und aktivierte die Option Auswählbar im Interface Builder.
Es ist nicht sehr elegant, diesen 'auswählbaren' Parameter zu haben, aber es wird reichen.
quelle
In iOS 8.3 wurde die Problemumgehung, bei der "auswählbar" vor dem setText auf "JA" und danach auf "NEIN" gesetzt wurde, für mich nicht behoben.
Ich musste im Storyboard auch "auswählbar" auf JA setzen, bevor dies funktionieren würde.
quelle
Das hat bei mir funktioniert:
quelle
Für mich mit zugeordnetem Text musste ich nur die Schriftart im Attributwörterbuch festlegen, anstatt sie in einem eigenen Feld festzulegen.
quelle
Ich habe dieses Problem zu. Eine schnelle und freundliche Lösung für die Antwort von @Ken Steele. Ich erweitere die UITextView und füge eine berechnete Eigenschaft hinzu.
ich hoffe es hilft.
quelle
Es ist 3 Jahre her und der Fehler existiert immer noch in der neuesten stabilen Version von Xcode (7.3). Es ist klar, dass Apple das Problem in naher Zukunft nicht beheben wird, sodass Entwickler zwei Optionen haben: Auswählbar aktivieren und UserInteractionEnabled auf false setzen oder Method swizzling.
Wenn Sie eine Schaltfläche in Ihrer Textansicht haben, reicht die erstere nicht aus.
Schnelle Lösung ohne Codeänderung:
Ziel c:
quelle
Unter Verwendung der in dieser Ausgabe beschriebenen Problemumgehung bietet diese Erweiterung von UITextView eine
setTextInCurrentStyle()
Funktion. Basierend auf der Lösung von Alessandro Ranaldi, erfordert jedoch nicht, dass der aktuelle isSelectable-Wert an die Funktion übergeben wird.quelle