Eu tenho um design que implementa um azul escuro UITextField
, pois o texto do espaço reservado é, por padrão, uma cor cinza escuro. Eu mal consigo entender o que o texto do espaço reservado diz.
Pesquisei no Google o problema, é claro, mas ainda tenho que encontrar uma solução enquanto estiver usando a linguagem Swift e não o Obj-c.
Existe uma maneira de alterar a cor do texto do espaço reservado em um UITextField
Swift?
emailTextField
?myTextField.attributedPlaceholder = NSAttributedString(string: "placeholder text", attributes: [NSForegroundColorAttributeName: UIColor.white])
Você pode fazer isso rapidamente, sem adicionar uma linha de código, usando o Interface Builder.
Selecione
UITextField
e abra o inspetor de identidade à direita:Clique no botão de adição e adicione um novo atributo de tempo de execução:
placeholderLabel.textColor (Swift 4)
_placeholderLabel.textColor (Swift 3 ou menos)
Use Cor como tipo e selecione a cor.
É isso aí.
Você não verá o resultado até executar o aplicativo novamente.
fonte
Crie uma
UITextField
extensão como esta:E no seu storyboard ou .xib. Você verá
fonte
placeHolderColor
! Se você retornar o valor de uma propriedade computada do getter da propriedade, o getter será chamado novamente de dentro do getter, resultando em uma recursão infinita. (Veja: stackoverflow.com/a/42334711/2062785 )attributedString
primeira letra (se não estiver vazia) e retorne sua cor de texto, caso contrárionil
.No Swift 3.0, use
No Siwft 5.0 + Use
fonte
Este código está funcionando no Swift3:
entre em contato se tiver algum problema.
fonte
setValue
para acessar uma propriedade privada. Use APIs públicas adequadas.#colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
Para definir a cor do espaço reservado de uma vez por todas
UITextField
no seu aplicativo, você pode:Isso definirá a cor desejada para todos os
TextField
espaços reservados no aplicativo inteiro. Mas só está disponível desde o iOS 9.Não existe um método antes iOS 9 em rápida appearenceWhenContainedIn .... (), mas você pode usar uma das soluções fornecidas aqui appearanceWhenContainedIn em Swift
fonte
No meu caso, eu uso o Swift 4
Crio extensão para UITextField
fonte
Xcode 9.2 Swift 4
fonte
Swift 4:
Objetivo-C:
fonte
Aqui está minha rápida implementação para o swift 4:
use como:
espero que ajude alguém!
fonte
Swift 3 (provavelmente 2), você pode substituir didSet no espaço reservado na
UITextField
subclasse para aplicar o atributo desta forma:fonte
Para Swift
Criar extensão UITextField
Se você está definido no storyboard.
fonte
Para Swift 3 e 3.1, isso funciona perfeitamente:
fonte
No Swift 4.0, versão X-code 9.1 ou iOS 11, você pode usar a seguinte sintaxe para ter cores diferentes no espaço reservado
fonte
Estou surpreso ao ver quantas soluções ruins existem aqui.
Aqui está uma versão que sempre funcionará.
Swift 4.2
DICA : Se você alterar o texto do espaço reservado após definir a cor, a cor será redefinida.
fonte
fonte
atualização de resposta de crubio para Swift 4
Selecione o UITextField e abra o inspetor de identidade à direita:
Clique no botão mais e adicione um novo atributo de tempo de execução: placeholderLabel.textColor (em vez de _placeholderLabel.textColor)
Use Cor como tipo e selecione a cor.
Se você executar seu projeto, verá as alterações.
fonte
Para o Swift 4.2 e superior, você pode fazer o seguinte:
fonte
No meu caso, eu fiz o seguinte:
fonte
Aqui estou escrevendo tudo UIDesignable de UITextField. Com a ajuda desse código, você pode acessá-lo diretamente do arquivo UI Inspector no storyboard
fonte
Para Swift
Você pode usar isso;
fonte
É mais uma questão de personalizar o seu textField, mas de qualquer forma, compartilharei esse código obtido em outra página e o tornei um pouco melhor:
E você pode usá-lo assim:
Sabendo que você tem um
UITextField
conectado aViewController
.Fonte: http://codepany.com/blog/swift-3-custom-uitextfield-with-single-line-input/
fonte
Para o objetivo C :
Para Swift :
fonte
Código C do objetivo para alterar a cor do texto do espaço reservado.
Primeiro importe esta classe objc / runtime -
substitua seu nome do campo de texto -
fonte
para iOS13
fonte
Use assim no Swift,
No objetivo C
fonte
fonte
Use isso para adicionar um espaço reservado atribuído:
fonte
Para Swift 4
fonte
fonte