J'ai un design qui implémente un bleu foncé UITextField
, car le texte de l'espace réservé est par défaut une couleur gris foncé, je peux à peine distinguer ce que dit le texte de l'espace réservé.
J'ai googlé le problème bien sûr, mais je n'ai pas encore trouvé de solution en utilisant le langage Swift et non Obj-c.
Existe-t-il un moyen de modifier la couleur du texte de l'espace réservé dans un UITextField
Swift à l'aide?
emailTextField
?myTextField.attributedPlaceholder = NSAttributedString(string: "placeholder text", attributes: [NSForegroundColorAttributeName: UIColor.white])
Vous pouvez accomplir cela rapidement, sans ajouter de ligne de code, en utilisant Interface Builder.
Sélectionnez
UITextField
et ouvrez l'inspecteur d'identité sur la droite:Cliquez sur le bouton plus et ajoutez un nouvel attribut d'exécution:
placeholderLabel.textColor (Swift 4)
_placeholderLabel.textColor (Swift 3 ou moins)
Utilisez Couleur comme type et sélectionnez la couleur.
C'est tout.
Vous ne verrez pas le résultat jusqu'à ce que vous exécutiez à nouveau votre application.
la source
Créez une
UITextField
extension comme celle-ci:Et dans votre storyboard ou .xib. Tu verras
la source
placeHolderColor
! Si vous renvoyez la valeur d'une propriété calculée elle-même à partir du getter de la propriété, le getter sera à nouveau appelé depuis l'intérieur du getter, ce qui entraînera une récursion infinie. (Voir: stackoverflow.com/a/42334711/2062785 )attributedString
première lettre de (sinon vide) et renvoyez sa couleur de texte, sinonnil
.Dans Swift 3.0, utilisez
Dans Siwft 5.0 + Use
la source
Ce code fonctionne dans Swift3:
faites-moi savoir si vous avez un problème.
la source
setValue
pour accéder à une propriété privée. Utilisez des API publiques appropriées.#colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
Pour définir la couleur de l'espace réservé une fois pour toutes
UITextField
dans votre application, vous pouvez faire:Cela définira la couleur souhaitée pour tous les
TextField
espaces réservés dans l'application entière. Mais il n'est disponible que depuis iOS 9.Il n'y a pas de méthode l'apparenceWhenContainedIn .... () avant iOS 9 dans swift mais vous pouvez utiliser l'une des solutions fournies ici apparenceWhenContainedIn dans Swift
la source
Dans mon cas, j'utilise Swift 4
Je crée une extension pour UITextField
la source
Xcode 9.2 Swift 4
la source
Swift 4:
Objectif c :
la source
Voici ma mise en œuvre rapide pour swift 4:
utiliser comme:
j'espère que ça aide quelqu'un!
la source
Swift 3 (probablement 2), vous pouvez remplacer didSet sur l'espace réservé dans la
UITextField
sous-classe pour lui appliquer un attribut, de cette façon:la source
Pour Swift
Créer l'extension UITextField
Si vous êtes défini à partir du storyboard.
la source
Pour Swift 3 et 3.1, cela fonctionne parfaitement bien:
la source
Pour Swift 4.0, la version X-code 9.1 ou iOS 11, vous pouvez utiliser la syntaxe suivante pour avoir une couleur d'espace réservé différente
la source
Je suis surpris de voir combien de mauvaises solutions il y a ici.
Voici une version qui fonctionnera toujours.
Swift 4.2
CONSEIL : Si vous modifiez le texte de l'espace réservé après avoir défini la couleur, la couleur sera réinitialisée.
la source
la source
mise à jour de la réponse de crubio pour Swift 4
Sélectionnez UITextField et ouvrez l'inspecteur d'identité sur la droite:
Cliquez sur le bouton plus et ajoutez un nouvel attribut d'exécution: placeholderLabel.textColor (au lieu de _placeholderLabel.textColor)
Utilisez Couleur comme type et sélectionnez la couleur.
Si vous exécutez votre projet, vous verrez les modifications.
la source
Pour swift 4.2 et supérieur, vous pouvez le faire comme ci-dessous:
la source
Dans mon cas, j'ai fait ce qui suit:
la source
Ici j'écris tous les UIDesignable de UITextField. Avec l'aide de ce code, vous pouvez y accéder directement depuis l'inspecteur de fichiers d'interface utilisateur dans le storyboard
la source
Pour Swift
Vous pouvez l'utiliser;
la source
Il s'agit plus de personnaliser votre textField mais de toute façon je partagerai ce code obtenu sur une autre page et le rendrai un peu mieux:
Et vous pouvez l'utiliser comme ceci:
Sachant que vous êtes
UITextField
connecté à unViewController
.Source: http://codepany.com/blog/swift-3-custom-uitextfield-with-single-line-input/
la source
Pour l' objectif C :
Pour Swift :
la source
Code objectif C pour changer la couleur du texte de l'espace réservé.
Importez d'abord cette classe objc / runtime -
puis remplacez votre nom de champ de texte -
la source
pour iOS13
la source
Utilisez comme ça dans Swift,
Dans l'objectif C
la source
la source
Utilisez-le pour ajouter un espace réservé attribué:
la source
Pour Swift 4
la source
la source