3
votes

L'espace réservé UITextField et la taille du texte doivent être séparés - Swift

Ma condition est telle que lorsque l'espace réservé du champ de texte est visible, sa couleur doit être grise et la taille de la police 10, mais lorsque l'utilisateur commence à taper dans le champ de texte, sa couleur doit être noire et la taille de la police 14. J'ai essayé ceci: < pre> XXX

Mais, ma taille de police d'espace réservé est remplacée par textfield.font , donc je ne parviens pas à obtenir un espace réservé de taille 10. Où est-ce que je me trompe? J'ai essayé cela pendant quelques heures maintenant. Toute aide sera appréciée.


0 commentaires

4 Réponses :


1
votes

Essayez simplement ce code, prenez la sortie d'action UITextFieldEditingChanged et utilisez comme ci-dessous.

@IBAction func nameTextFieldEditingChanged(_ sender: UITextField) {
        if sender.text?.isEmpty ?? true {
            //placeholder text size set here
            textField.font = UIFont(name: "SourceSansPro-Regular", size: 10)!
        } else {
            // When user starting typing
            textField.textColor = UIColor.black
            textField.font = UIFont(name: "SourceSansPro-Regular", size: 14)!
        }
    }

En cas de doute, veuillez commenter].


0 commentaires

2
votes

Définissez simplement l'espace réservé après avoir défini la police car la définition de la police s'applique également à l'espace réservé (voir https://developer.apple.com/documentation/uikit/uitextfield/1619604-font ):

textField.font = ...
textField.textColor = ...

textField.attributedPlaceholder = ...


0 commentaires

1
votes

Essayez simplement ce code pour plus d'informations:

    var myMutableStringTitle = NSMutableAttributedString()
    let Name  = "Enter Title" // PlaceHolderText

    myMutableStringTitle = NSMutableAttributedString(string:Name, attributes: [NSFontAttributeName:UIFont(name: "Georgia", size: 20.0)!]) // Font
    myMutableStringTitle.addAttribute(NSForegroundColorAttributeName, value: UIColor.redColor(), range:NSRange(location:0,length:Name.characters.count))    // Color
    txtTitle.attributedPlaceholder = myMutableStringTitle


0 commentaires

3
votes

Essayez ce code dans votre méthode viewDidLoad() :

textField.attributedPlaceholder = NSAttributedString(string: placeholderText, attributes: [NSAttributedString.Key.foregroundColor: Color.iPhoneGrayColor, NSAttributedString.Key.font: UIFont(name: "SourceSansPro-Regular", size: 10)!])
    textField.textColor = UIColor.black
    textField.font = UIFont(name: "SourceSansPro-Regular", size: 14)!


0 commentaires