Respuestas:
Primero debe cumplir con el UITextFieldDelegate
Protocolo en el archivo de encabezado de su View / ViewController de esta manera:
@interface YourViewController : UIViewController <UITextFieldDelegate>
Luego, en su archivo .m, debe implementar el siguiente UITextFieldDelegate
método de protocolo:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
[textField resignFirstResponder];
se asegura de que el teclado se cierre.
Asegúrese de que está configurando su vista / controlador de vista para que sea el delegado de UITextField después de iniciar el campo de texto en el .m:
yourTextField = [[UITextField alloc] initWithFrame:yourFrame];
//....
//....
//Setting the textField's properties
//....
//The next line is important!!
yourTextField.delegate = self; //self references the viewcontroller or view your textField is on
Implemente el método UITextFieldDelegate como este:
- (BOOL)textFieldShouldReturn:(UITextField *)aTextField
{
[aTextField resignFirstResponder];
return YES;
}
Consulte Administración del teclado para obtener una discusión completa sobre este tema.
Sus UITextFields deben tener un objeto delegado (UITextFieldDelegate). Use el siguiente código en su delegado para hacer desaparecer el teclado:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
}
Debería funcionar hasta ahora ...
Cuando se presiona la tecla de retorno, llame a:
[uitextfield resignFirstResponder];
Después de bastante tiempo buscando algo que tenga sentido, esto es lo que armé y funcionó a la perfección.
.h
//
// ViewController.h
// demoKeyboardScrolling
//
// Created by Chris Cantley on 11/14/13.
// Copyright (c) 2013 Chris Cantley. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITextFieldDelegate>
// Connect your text field to this the below property.
@property (weak, nonatomic) IBOutlet UITextField *theTextField;
@end
.metro
//
// ViewController.m
// demoKeyboardScrolling
//
// Created by Chris Cantley on 11/14/13.
// Copyright (c) 2013 Chris Cantley. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// _theTextField is the name of the parameter designated in the .h file.
_theTextField.returnKeyType = UIReturnKeyDone;
[_theTextField setDelegate:self];
}
// This part is more dynamic as it closes the keyboard regardless of what text field
// is being used when pressing return.
// You might want to control every single text field separately but that isn't
// what this code do.
-(void)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
}
@end
¡Espero que esto ayude!
Configure el Delegado de UITextField en su ViewController, agregue una salida de referencia entre el Propietario del archivo y UITextField, luego implemente este método:
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
if (textField == yourTextField)
{
[textField resignFirstResponder];
}
return NO;
}
Agregue esto en lugar de la clase predefinida
class ViewController: UIViewController, UITextFieldDelegate {
Para quitar el teclado cuando se hace clic fuera del teclado
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
y para quitar el teclado cuando se presiona enter
agregue esta línea en viewDidLoad ()
inputField es el nombre del textField utilizado.
self.inputField.delegate = self
y agrega esta función
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
Rápido 2:
¡esto es lo que se hizo para hacer todo!
cerrar el teclado con el Done
botón o Touch outSide
,Next
para ir a la siguiente entrada.
Primero cambie TextFiled Return Key
To Next
en StoryBoard.
override func viewDidLoad() {
txtBillIdentifier.delegate = self
txtBillIdentifier.tag = 1
txtPayIdentifier.delegate = self
txtPayIdentifier.tag = 2
let tap = UITapGestureRecognizer(target: self, action: "onTouchGesture")
self.view.addGestureRecognizer(tap)
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
if(textField.returnKeyType == UIReturnKeyType.Default) {
if let next = textField.superview?.viewWithTag(textField.tag+1) as? UITextField {
next.becomeFirstResponder()
return false
}
}
textField.resignFirstResponder()
return false
}
func onTouchGesture(){
self.view.endEditing(true)
}
en rápido, debe delegar UITextfieldDelegate , es importante, no lo olvide, en el viewController, como:
class MyViewController: UITextfieldDelegate{
mytextfield.delegate = self
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
}
}
Puede agregar una IBAction al uiTextField (el evento de releation es "Did End On Exit"), y la IBAction puede denominarse hideKeyboard,
-(IBAction)hideKeyboard:(id)sender
{
[uitextfield resignFirstResponder];
}
Además, puede aplicarlo a los otros campos de texto o botones, por ejemplo, puede agregar un botón oculto a la vista, cuando hace clic en él para ocultar el teclado.
Puede probar esta subclase UITextfield en la que puede establecer una condición para que el texto cambie dinámicamente UIReturnKey:
https://github.com/codeinteractiveapps/OBReturnKeyTextField