ios - tamaño - teclado iphone 7
¿Cómo hacer que la tecla de retorno en el iPhone haga desaparecer el teclado? (14)
Tengo dos UITextFields
(por ejemplo, nombre de usuario y contraseña) pero no puedo deshacerme del teclado al presionar la tecla de retorno en el teclado. ¿Cómo puedo hacer esto?
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 pulsa 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
}
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ó como un amuleto.
.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!
Establezca el delegado del UITextField en su ViewController, agregue un punto de referencia entre el propietario del archivo y el UITextField, luego implemente este método:
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
if (textField == yourTextField)
{
[textField resignFirstResponder];
}
return NO;
}
Implemente el método UITextFieldDelegate de esta manera:
- (BOOL)textFieldShouldReturn:(UITextField *)aTextField
{
[aTextField resignFirstResponder];
return YES;
}
Me llevó un par de pruebas, tuve el mismo problema, esto funcionó para mí:
Verifica tu ortografía en -
(BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
textField
mío en textField
lugar de textfield
, escribe "F" ... y bingo !! funcionó..
Primero debe cumplir con el protocolo UITextFieldDelegate
en su archivo de encabezado View / ViewController de la siguiente manera:
@interface YourViewController : UIViewController <UITextFieldDelegate>
Luego, en su archivo .m, debe implementar el siguiente método de protocolo UITextFieldDelegate
:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
[textField resignFirstResponder];
se asegura de que el teclado se cierre.
Asegúrese de configurar su view / viewcontroller para que sea el delegado de UITextField después de iniciar el campo de texto en .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
Puede agregar una IBAction a uiTextField (el evento de repetición es "End End On Exit"), y el IBAction puede llamar hideKeyboard,
-(IBAction)hideKeyboard:(id)sender
{
[uitextfield resignFirstResponder];
}
también, puede aplicarlo a los otros campos de texto o botones, por ejemplo, puede agregar un botón oculto a la vista, cuando hace clic para ocultar el teclado.
Puede probar esta subclase UITextfield que puede establecer una condición para que el texto cambie dinámicamente la UIReturnKey:
https://github.com/codeinteractiveapps/OBReturnKeyTextField
Si desea desaparecer el teclado al escribir en cuadro de alerta, los archivos de texto
[[alertController.textFields objectAtIndex:1] resignFirstResponder];
Su UITextFields debe 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 ...
Vea Administrar el teclado para una discusión completa sobre este tema.
en breve debe delegar UITextfieldDelegate , es importante no olvidarlo, en viewController, como:
class MyViewController: UITextfieldDelegate{
mytextfield.delegate = self
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
}
}
Swift 2:
esto es lo que se hace para hacer todo!
cierre el teclado con el botón Done
o Touch outSide
, siga para ir a la siguiente entrada.
Primero, cambie la clave de Return Key
a la 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)
}