teclado tamaño inicio home funciona flotante descargar desactivar como cambiar boton aumentar iphone objective-c cocoa-touch keyboard uikit

tamaño - teclado iphone 7



Teclado iPhone, botón Hecho y resignFirstResponder (4)

Esta es probablemente una pregunta tonta, pero no puedo encontrar la respuesta en los documentos. ¿El botón "Hecho" en el teclado emergente siempre causa que el teclado desaparezca? Veo mucho código en la web como este:

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField { [theTextField resignFirstResponder]; return YES; }

Cuando UITextField el botón "Hecho", el teclado aparece y el UITextField renuncia a la primera respuesta.

Supongo que presionar el botón "Listo" no solía hacer que un UITextField a resignFirstResponder , pero ese comportamiento cambió en algún momento.

Estoy depurando en OS 3.0 - 3.1.3


Código de una línea para el botón Hecho: -

[yourTextField setReturnKeyType:UIReturnKeyDone];

Y agregue el método de acción en valueChanged of TextField y agregue esta línea-

[yourTextField resignFirstResponder];


De la documentación (cualquier versión):

Es responsabilidad de su aplicación descartar el teclado en el momento que elija. Puede descartar el teclado en respuesta a una acción específica del usuario, como que el usuario toque un botón en particular en su interfaz de usuario. También puede configurar su delegado de campo de texto para descartar el teclado cuando el usuario presiona la tecla "devolver" en el teclado. Para cerrar el teclado, envíe el mensaje resignFirstResponder al campo de texto que actualmente es el primer respondedor. Al hacerlo, el objeto de campo de texto finaliza la sesión de edición actual (con el consentimiento del objeto delegado) y oculta el teclado.

Por lo tanto, debe enviar resignFirstResponder de alguna manera. Pero existe la posibilidad de que las pérdidas de campos de texto se enfoquen de otra manera durante el procesamiento de textFieldShouldReturn: message. Esto también hará que el teclado desaparezca.


En Xcode 5.1

Habilitar el botón Hecho

  • En Attributes Inspector para UITextField en Storyboard encuentre el campo "Return Key" y seleccione "Done"

Ocultar teclado cuando se presiona Listo

  • En Storyboard, haz que tu ViewController sea el delegado del UITextField
  • Agregue este método a su ViewController

    -(BOOL)textFieldShouldReturn:(UITextField *)textField { [textField resignFirstResponder]; return YES; }


Hice un pequeño proyecto de prueba con solo un UITextField y este código

#import <UIKit/UIKit.h> @interface TextFieldTestViewController : UIViewController <UITextFieldDelegate> { UITextField *textField; } @property (nonatomic, retain) IBOutlet UITextField *textField; @end #import "TextFieldTestViewController.h" @implementation TextFieldTestViewController @synthesize textField; - (void)viewDidLoad { [self.textField setDelegate:self]; [self.textField setReturnKeyType:UIReturnKeyDone]; [self.textField addTarget:self action:@selector(textFieldFinished:) forControlEvents:UIControlEventEditingDidEndOnExit]; [super viewDidLoad]; } - (IBAction)textFieldFinished:(id)sender { // [sender resignFirstResponder]; } - (void)dealloc { [super dealloc]; } @end

El campo de texto es un UITextField sin modificar arrastrado al NIB, con la toma de corriente conectada.
Después de cargar la aplicación, al hacer clic en el campo de texto aparece el teclado. Al presionar el botón "Listo", el campo de texto pierde el foco y anima el teclado. Tenga en cuenta que el consejo en la web es usar siempre [sender resignFirstResponder] pero esto funciona sin él.