J'ai UITextView *_masterText
et après l'appel setText
, la police de propriété de la méthode est en cours de réinitialisation. Cela se produit après avoir changé le sdk 7. _masterText est IBOutlet
global et les propriétés sont définies dans le storyboard. C'est seulement moi ou c'est un bogue général du 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
la source
la source
J'ai rencontré le même problème (sur Xcode 6.1) et bien que la réponse de John Cogan ait fonctionné pour moi, j'ai trouvé que l'extension de la classe UITextView avec une catégorie était une meilleure solution pour mon projet particulier.
interface
la mise en oeuvre
la source
extension UITextView { func setSafeText(text: String){ let originalSelectable = selectable selectable = true self.text = text selectable = originalSelectable } }
Si vous voulez que votre vue de texte soit en "lecture seule", vous pouvez cocher Modifiable et sélectionnable et décocher Interaction utilisateur activée, avec cela, UITextView se comportait comme je le voulais
la source
Si ce problème moi-même et la réponse ci-dessus ont aidé, j'ai ajouté un wrapper à mon code ViewController comme suit et il suffit de passer l'instance et le texte uiview à modifier et la fonction wrapper active la valeur sélectionnable, modifie le texte, puis la désactive à nouveau. Utile lorsque vous avez besoin que uitextview soit désactivé à tout moment par défaut.
la source
ÉDITER :
La définition de la police pour UITextView dans iOS 7 fonctionne pour moi si vous définissez d'abord le texte, puis la police:
Sur un fichier XIB, si vous ajoutez du texte dans votre UITextView et changez la police ou la couleur, cela fonctionnera.
la source
Voici une solution rapide de sous-classe que j'utilise souvent pour ce problème.
la source
Ce problème a refait surface dans Xcode 8. Voici comment je l'ai résolu:
L'extension a été remplacée par:
et coché l'option sélectionnable dans le générateur d'interface.
Ce n'est pas très élégant d'avoir ce paramètre «sélectionnable», mais ça fera l'affaire.
la source
Dans iOS 8.3, la solution de contournement consistant à définir «sélectionnable» sur OUI avant le setText, et NON après, ne l'a pas résolu pour moi.
J'ai trouvé que je devais également définir «sélectionnable» sur OUI dans le storyboard avant que cela ne fonctionne.
la source
Cela a fonctionné pour moi:
la source
Pour moi avec du texte attribué, j'avais juste besoin de définir la police dans le dictionnaire d'attributs plutôt que de la définir dans son propre champ.
la source
J'ai ce problème à. Une solution rapide de la réponse de @Ken Steele. J'étends UITextView et j'ajoute une propriété calculée.
J'espère que ça aide.
la source
Cela fait 3 ans et le bogue existe toujours dans la dernière version stable de Xcode (7.3). Il est clair qu'Apple ne le corrigera pas de sitôt, laissant aux développeurs deux options: laisser le sélectionnable activé et définir UserInteractionEnabled sur false ou Method swizzling.
Si vous avez un bouton sur votre textView, le premier ne suffira pas.
Solution sans changement de code dans Swift:
Objectif c:
la source
À l'aide de la solution de contournement décrite dans ce problème, cette extension d'UITextView fournit une
setTextInCurrentStyle()
fonction. Basé sur la solution d'Alessandro Ranaldi mais ne nécessite pas que la valeur isSelectable actuelle soit transmise à la fonction.la source