soporte recuperar para pantalla notificaciones emojis desactivar copiar centro bloqueo bloqueada activacion iphone objective-c ios uitextfield

recuperar - soporte iphone



iPhone cómo obtener el texto de UITextField mientras tipea? (7)

  1. Primero agregue un UITextField y UILabel al guión gráfico / plumín
  2. Ahora asigne IBOutlet para UILabel (Aquí he usado myLabel )
  3. Asigne UITextFieldDelegate al propietario del archivo, también implemente el mismo delegado en el archivo .h
  4. Use estas líneas de código:

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; [self updateTextLabelsWithText: newString]; return YES; } -(void)updateTextLabelsWithText:(NSString *)string { [myLabel setText:string]; }

Espero que esto ayude.

Estoy tratando de mostrar los cambios realizados en un UITextField en un UITextField por separado. ¿Hay alguna manera de capturar el texto completo de UITextField después de cada carácter que el usuario UITextField ? Actualmente estoy usando este método, pero no captura el último carácter que el usuario ha ingresado.

Sé que UITextView tiene el método "didChange", pero no pude encontrar ese método para un UITextField .

//does not capture the last character -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { [self updateTextLabelsWithText: textField.text]; return YES; }

¿Cómo puedo sacar texto de UITextField después de cada carácter ingresado?

¡Gracias!


Simplemente maneje el evento "Editing Changed"

[textField addTarget:self action:@selector(editingChanged:) forControlEvents:UIControlEventEditingChanged];

y el selector:

-(void) editingChanged:(id)sender { // your code }

Puede hacerlo de forma manual o con el guión gráfico con CTRL: arrastrando el evento Enviado "Edición modificada" a su .h, creando el método de edición modificado por usted.


Swift 3.0+: Esto funcionó muy bien para mí.

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { self.yourLabel.text = "/(textField.text ?? "")/(string)" return true }


Swift con addTarget Swift 2.0+

titleTextField.addTarget(self, action: #selector(textFieldTyping), forControlEvents: .EditingChanged)

Y implementar selector

func textFieldTyping(textField:UITextField) { //Typing }


En Swift 2.0+

class CheckInViewController: UIViewController, UITextFieldDelegate { override func viewDidLoad() { super.viewDidLoad() yourTextField.delegate = self } func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool { var updatedTextString : NSString = textField.text as NSString updatedTextString = updatedTextString.stringByReplacingCharactersInRange(range, withString: string) self.methodYouWantToCallWithUpdatedString(updatedTextString) return true } }

Espero que te ayude a los pioneros rápidos


En Swift 3.0:

Algunas de estas soluciones tenían un carácter detrás o versiones anteriores de Swift y Obj-C. Esto es lo que estoy usando para Swift 3.0

En la clase, declare un marcador de posición para almacenar el texto.

var tempName = ""

En ViewDidLoad utilicé:

nameField.addTarget(self, action: #selector(typingName), for: .editingChanged)

Luego hice una función llamada:

func typingName(textField:UITextField){ if let typedText = textField.text { tempName = typedText print(tempName) } }


func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { if textField == yourTextFieldOutletName { if yourTextFieldOutletName.isEmpty == false { youtlabelname.text = yourTextFieldOutletName.text! } } return true } func textViewDidEndEditing(_ textView: UITextView) { if textField == yourTextFieldOutletName { if yourTextFieldOutletName.isEmpty == false { youtlabelname.text = yourTextFieldOutletName.text! } } }