iphone - Por qué UITextview no tiene propiedad de marcador de posición como UITextField
ios objective-c (2)
Esta pregunta ya tiene una respuesta aquí:
- Placeholder en UITextView 59 respuestas
Hola, estoy trabajando con aplicaciones de iPhone. Sé que el campo de la UIT tiene propiedades de marcador de posición. Pero UITextview no tiene propiedad de marcador de posición. Conozco el proceso de cómo personalizar el marcador de posición para UITextview. Pero por favor déjame saber la diferencia.
y UITextfield hereda de UIControl, que a su vez hereda de UIView ... NSObject. y UITextview se hereda de UIScrollView, UIView, UIresponder ... NSOBject. Pero, ¿dónde está la diferencia de propiedad del titular de lugar.
¿Cómo textfield contiene la propiedad placeholder, por qué textview no contiene placeholder?
Por favor, da cualquier idea, sugerencia y / o mejor explicación.
No sé por qué Apple no incluyó un atributo placeHolder en UITextView. Pero pude agregar uno usando una subvista UILabel que contiene el texto del marcador de posición.
Luego muéstrelo u ocúltelo de las devoluciones de llamada de delegado como se muestra a continuación
- (void)textViewDidBeginEditing:(UITextView *)textView
{
self.defaultLabel.hidden = YES;
}
- (void)textViewDidChange:(UITextView *)txtView
{
self.defaultLabel.hidden = ([txtView.text length] > 0);
}
- (void)textViewDidEndEditing:(UITextView *)txtView
{
self.defaultLabel.hidden = ([txtView.text length] > 0);
}
Por qué UITextField
tiene un valor de marcador de posición y UITextView
no tiene nada que ver con su herencia, o incluso con la programación. Se trata de cómo Apple percibió su uso y prefiere su uso.
UITextField
es un ítem de una línea. Puede usarse para ingresar nombres de usuario, contraseñas, bits de dirección o casi cualquier cosa. A menudo, tiene varios de ellos agrupados, y puede ser difícil averiguar qué campo debe tener qué datos sin texto de marcador de posición. El marcador de posición nos permite saber el propósito del campo.
UITextView
es un bloque de texto. Por lo general, varias líneas, que a menudo tienen un encabezado asociado con ellos. Como resultado, el texto del marcador de posición a menudo no es útil. También es más probable que la vista de texto se rellene con texto estático, lo que, de nuevo, haría que el texto de marcador de posición no sea realmente útil.
¿Creo que Apple debería agregar una propiedad de marcador de posición para UITextView
todos modos? Sí. Es molesto tener que hacer mi propio en la ocasión cuando lo necesito. Apple también utiliza texto de marcador de posición en algunos lugares donde utiliza un UITextView
. El siguiente ejemplo es de agregar una entrada de calendario.