number ios swift uitextfield uitextview multiline

number - Entrada de usuario multilínea en iOS: UITextField vs UITextView



number of lines textfield swift (5)

Definitivamente me gustaría ir con UITextView . En caso de que desee configurar el texto del marcador de posición, UITextView+Placeholder permite establecerlo fácilmente. Puedes instalarlo usando

pod ''UITextView+Placeholder'', ''~> 1.2''

en su archivo pod. Ahora puedes importar cabecera

#import <UITextView+Placeholder/UITextView+Placeholder.h>

Lo que ayuda a colocar fácilmente el marcador de posición.

UITextView *textView = [[UITextView alloc] init]; textView.placeholder = @"How are you?"; textView.placeholderColor = [UIColor lightGrayColor]; // optional textView.attributedPlaceholder = ... // NSAttributedString (optional)

Necesito mostrar a los usuarios un "cuadro" de entrada de texto de varias líneas con una altura mayor que la altura estándar de un UITextField . ¿Cuál debería ser el mejor o más correcto enfoque ?:

  1. Utilice un UITextField y cambie su altura en el código o aplicando una determinada restricción de altura.
  2. Utilizando un UITextView editable. Esto es multilínea pero no tiene marcador de posición por defecto, supongo que debería implementar esa función en el código.

No puede hacer texto multilínea utilizando UITextField . Debe ir con UITextView e implementar la lógica del marcador de posición.


Vaya con la opción dos, la altura del campo de texto no se puede cambiar y no muestra la segunda línea ...

LÓGICA DEL LUGAR:

textView.text = "Placeholder" textView.textColor = UIColor.lightGrayColor() func textViewDidBeginEditing(textView: UITextView) { if textView.textColor == UIColor.lightGrayColor() { textView.text = nil textView.textColor = UIColor.blackColor() } } func textViewDidEndEditing(textView: UITextView) { if textView.text.isEmpty { textView.text = "Placeholder" textView.textColor = UIColor.lightGrayColor() } }

Desde Text View Placeholder Swift .


UITextField es específicamente una sola línea.

Utilice UITextView lugar de texto multilínea.

Para implementar el marcador de posición en UITextView use esta lógica / código.

Primero configure el UITextView para que contenga el texto del marcador de posición y ajústelo a un color gris claro para imitar el aspecto del texto del marcador de posición de un UITextField. Puede hacerlo en viewDidLoad o en la creación de la vista de texto.

Para Swift

textView.text = "Placeholder" textView.textColor = UIColor.lightGrayColor()

Para Objective-C

textView.text = @"Placeholder"; textView.textColor =[UIColor lightGrayColor];

Luego, cuando el usuario comienza a editar la vista de texto, si la vista de texto contiene un marcador de posición (es decir, si su color de texto es gris claro), borre el texto del marcador de posición y configure el color del texto en negro para acomodar la entrada del usuario.

Para Swift

func textViewDidBeginEditing(textView: UITextView) { if textView.textColor == UIColor.lightGrayColor() { textView.text = nil textView.textColor = UIColor.blackColor() } }

Para Objective-C

- (BOOL) textViewShouldBeginEditing:(UITextView *)textView { if (textView.textColor == [UIColor lightGrayColor]) { textView.text = @""; textView.textColor = [UIColor blackColor]; } return YES; }

Luego, cuando el usuario termina de editar la vista de texto y se resigna como el primer respondedor, si la vista de texto está vacía, reinicie su marcador de posición agregando nuevamente el texto del marcador de posición y configurando su color en gris claro.

Para Swift

func textViewDidEndEditing(textView: UITextView) { if textView.text.isEmpty { textView.text = "Placeholder" textView.textColor = UIColor.lightGrayColor() } }

Para Objective-C

- (void)textViewDidEndEditing:(UITextView *)textView{ if ([textView.text isEqualToString:@""]) { textView.text = @"Placeholder"; textView.textColor =[UIColor lightGrayColor]; } }

También agregue UITextViewDelegate en el controlador de vista.


Para Swift 3

UITextView no tiene inherentemente una propiedad de marcador de posición, por lo que tendría que crear y manipular uno mediante programación utilizando los métodos UITextViewDelegate .

(Nota: Agregue UITextViewDelegate a la clase y establezca textView.delegate = self ).

Primero configure el UITextView para que contenga el texto del marcador de posición y ajústelo a un color gris claro para imitar el aspecto del texto del marcador de posición de un UITextField . Puede hacerlo en viewDidLoad o en la creación de la vista de texto.

textView.text = "Placeholder" textView.textColor = UIColor.lightGray

Luego, cuando el usuario comienza a editar la vista de texto, si la vista de texto contiene un marcador de posición (es decir, si su color de texto es gris claro), borre el texto del marcador de posición y configure el color del texto en negro para acomodar la entrada del usuario.

func textViewDidBeginEditing(_ textView: UITextView) { if textView.textColor == UIColor.lightGray { textView.text = nil textView.textColor = UIColor.black } }

Luego, cuando el usuario termina de editar la vista de texto y se resigna como el primer respondedor, si la vista de texto está vacía, reinicie su marcador de posición agregando nuevamente el texto del marcador de posición y configurando su color en gris claro.

func textViewDidEndEditing(_ textView: UITextView) { if textView.text.isEmpty { textView.text = "Placeholder" textView.textColor = UIColor.lightGray } }