Tengo un diseño que implementa un azul oscuro UITextField
, ya que el texto del marcador de posición es por defecto un color gris oscuro que apenas puedo distinguir lo que dice el texto del marcador de posición.
He buscado en Google el problema, por supuesto, pero todavía tengo que encontrar una solución mientras uso el lenguaje Swift y no Obj-c.
¿Hay alguna manera de cambiar el color del texto del marcador de posición UITextField
usando Swift?
emailTextField
?myTextField.attributedPlaceholder = NSAttributedString(string: "placeholder text", attributes: [NSForegroundColorAttributeName: UIColor.white])
Puede lograr esto rápidamente, sin agregar una línea de código, utilizando Interface Builder.
Seleccione
UITextField
y abra el inspector de identidad a la derecha:Haga clic en el botón más y agregue un nuevo atributo de tiempo de ejecución:
placeholderLabel.textColor (Swift 4)
_placeholderLabel.textColor (Swift 3 o menos)
Use Color como tipo y seleccione el color.
Eso es.
No verá el resultado hasta que vuelva a ejecutar su aplicación.
fuente
Crea una
UITextField
extensión como esta:Y en tu guión gráfico o .xib. Ya verás
fuente
placeHolderColor
! Si devuelve el valor de una propiedad calculada del getter de la propiedad, se llamará nuevamente al getter desde dentro del getter, lo que dará como resultado una recursión infinita. (Ver: stackoverflow.com/a/42334711/2062785 )attributedString
primera letra de la letra (si no está vacía) y devuelva su color de texto, de lo contrarionil
.En Swift 3.0, use
En Siwft 5.0 + Uso
fuente
Este código está funcionando en Swift3:
Avísame si tienes algún problema.
fuente
setValue
para acceder a una propiedad privada. Utilice las API públicas adecuadas.#colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
Para configurar el color del marcador de posición de una vez para todo lo
UITextField
que puede hacer en su aplicación:Esto establecerá el color deseado para todos los
TextField
marcadores de posición en toda la aplicación. Pero solo está disponible desde iOS 9.No hay un método de apariciónWhenContainedIn .... () antes de iOS 9 en Swift, pero puede usar una de las soluciones proporcionadas aquí apariciónWhenContainedIn en Swift
fuente
En mi caso, uso Swift 4
Creo una extensión para UITextField
fuente
Xcode 9.2 Swift 4
fuente
Swift 4:
C objetivo :
fuente
Aquí está mi implementación rápida para swift 4:
usar como:
Espero que ayude a alguien!
fuente
Swift 3 (probablemente 2), puede anular didSet en el marcador de posición en la
UITextField
subclase para aplicar el atributo de esta manera:fuente
Para Swift
Crear extensión UITextField
Si está establecido desde el guión gráfico.
fuente
Para Swift 3 y 3.1 esto funciona perfectamente bien:
fuente
Para Swift 4.0, versión X-code 9.1 o iOS 11 , puede usar la siguiente sintaxis para tener un color de marcador de posición diferente
fuente
Me sorprende ver cuántas soluciones pobres hay aquí.
Aquí hay una versión que siempre funcionará.
Swift 4.2
CONSEJO : Si cambia el texto del marcador de posición después de configurar el color, el color se restablecerá.
fuente
fuente
actualización de la respuesta de crubio para Swift 4
Seleccione UITextField y abra el inspector de identidad a la derecha:
Haga clic en el botón más y agregue un nuevo atributo de tiempo de ejecución: placeholderLabel.textColor (en lugar de _placeholderLabel.textColor)
Use Color como tipo y seleccione el color.
Si ejecuta su proyecto, verá los cambios.
fuente
Para swift 4.2 y superior, puede hacerlo de la siguiente manera:
fuente
En mi caso, he hecho lo siguiente:
fuente
Aquí estoy escribiendo todos los UIDesignable de UITextField. Con la ayuda de este código, puede acceder directamente desde el inspector de archivos de la interfaz de usuario en el guión gráfico
fuente
Para Swift
Puedes usar esto;
fuente
Se trata más de personalizar tu textField, pero de todos modos compartiré este código que obtuve de otra página y lo hice un poco mejor:
Y puedes usarlo así:
Sabiendo que tienes un
UITextField
conectado aViewController
.Fuente: http://codepany.com/blog/swift-3-custom-uitextfield-with-single-line-input/
fuente
Para el objetivo C :
Para Swift :
fuente
Código objetivo C para cambiar el color del texto del marcador de posición.
Primero importe esta clase objc / runtime -
luego reemplace su nombre de campo de texto -
fuente
para iOS13
fuente
Úselo así en Swift,
En el objetivo C
fuente
fuente
Use esto para agregar un marcador de posición atribuido:
fuente
Para Swift 4
fuente
fuente