En mi aplicación tengo un campo de texto que requiere un número de entrada del usuario, por lo que configuro el tipo de teclado como "Number Pad" pero ahora estoy atascado en cuanto a cómo descartarlo cuando el usuario finaliza la entrada. Sé que tengo que usar el método de delegado "textfieldShouldReturn" pero el problema es que el teclado numérico no tiene una clave de retorno. ¿Es necesario agregar una tecla personalizada en el teclado o hay alguna otra salida?despidiendo Number Pad
Respuesta
es necesario agregar un fondo del grifo
-(IBAction)backGroundTap:(id)sender
en el punto h y luego en el archivo dot m
-(IBAction)backGroundTap:(id)sender
[nameField resignFirstResponder];
[numberField resignFirstResponder];
thx Púrpura ....... pero ¿qué es backgroundtap y nameField es el nombre de textfield? y ¿qué es nameField aquí? – Siddharth
UITapGestureRecognizer * tapBackground = [[UITPGestureRecognizer alloc] initWithTarget: acción propia: @selector (tapBackground :)]; [self.view addGestureRecognizer: tapBackground]; –
Para agregar un fondo toque el reconocedor de gestos –
Otra solución - Añadir inputAccessoryView
a yourNumberTextFiled
- (void)viewDidLoad
{
[super viewDidLoad];
UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
numberToolbar.barStyle = UIBarStyleBlackTranslucent;
numberToolbar.items = [NSArray arrayWithObjects:
[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad)],
[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc]initWithTitle:@"Apply" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)],
nil];
[numberToolbar sizeToFit];
numberTextField.inputAccessoryView = numberToolbar;
}
-(void)cancelNumberPad{
[numberTextField resignFirstResponder];
numberTextField.text = @"";
}
-(void)doneWithNumberPad{
NSString *numberFromTheKeyboard = numberTextField.text;
[numberTextField resignFirstResponder];
}
Si conoce la longitud del número que se va a ingresar (p. un PIN de 4 dígitos) puede descartar automáticamente el teclado después de ingresar 4 teclas.
yo golpean un problema de renunciar al primer nivel de respuesta después de 4 teclas (sería ignorar la última pulsación de tecla que ya envió SÍ después de renunciar, por lo que añade un retardo asíncrono a la renuncia.
Este es el código de la delegada UITextField :
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
// max 4 keypresses
if(range.location == 3){
// async workaround for can't return YES after resignFirstResponder
[self performSelector:@selector(closeKeypad:)
withObject:textField
afterDelay:0.1
];
}
else if(range.location > 3){
return NO;
}
return YES;
}
-(void) closeKeypad:(UITextField*)textField {
[textField resignFirstResponder];
}
Otra solución que es bastante fácil de aplicar, y está trabajando para cambiar el foco de entrada o para despedir el teclado
implementar esta función (y el delegado UITextFieldDelegate.):
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
Entonces, cuando se desea ocultar el teclado o cambiar el foco, sólo hay que llamar a un notificador de esa manera:
[self performSelector:@selector(focusNextField:) withObject:textField afterDelay:0.1];
Y, por último, ocultar el teclado en este caso:
- (void) focusNextField:(UITextField *) textField
{
[textField resignFirstResponder];
// some code
}
¡Nada más!
- 1. python re.sub group: number after \ number
- 2. BadPaddingException: pad block corrupto
- 3. C#/Java Number Aleatorización
- 4. Oracle NUMBER Comparaciones
- 5. ASP.Net Version/Build Number
- 6. (n) curses pad en python no funciona
- 7. Calling Haskell FFI Función PAD de C
- 8. Vim Configure Line Number Coloring
- 9. C# y Oracle Number Datatype
- 10. Java Round up Any Number
- 11. estática <T extends Number & Comparable <? Extends number & Comparable <? Número súper >>
- 12. Javascript String to Number type coerción
- 13. SQL: Diferencia entre "BETWEEN" vs "current_date - number"
- 14. Edittext line number y currentline cursor position.
- 15. Diferencia de rendimiento entre VARCHAR2 a NUMBER
- 16. Dónde está la aplicación SKU Number Iphone
- 17. Divide Long Long Number como porcentaje
- 18. ¿Hay una ventana 'scratch pad' en Visual Studio
- 19. ¿Cuál es la diferencia entre parseInt() y Number()?
- 20. Método abreviado de Ruby para "if (number in range) then ..."
- 21. Convertir 64 bit windows number to time Java
- 22. ¿Cuál es la diferencia entre Number (...) y parseFloat (...)
- 23. jquery .not (": contiene ('<<any number>>')")
- 24. android get contact picture, name, and mobile number
- 25. Extendiendo el prototipo Number en javascript y el objeto Math?
- 26. Android: ¿Hay alguna forma de simular eventos D-Pad (API 10)?
- 27. -pad cero Cómo variables numéricas en zsh (? Y tal vez también Bash)
- 28. ¿Cómo dejo el pad un NSString para que quepa en un ancho fijo?
- 29. X-Pad: evitar el encabezado del error del navegador agregado por apache
- 30. OR genérico en lugar de AND <T extends Number | CharSequence>
posible duplicado de [¿Cómo mostrar el botón 'Hecho' en el teclado numérico en el iPhone?] (Http://stackoverflow.com/questions/584538/how-to-show-button-done-on-number-pad- en-iphone) – kennytm
pero Kenny en esa ans se menciona que tenemos que agregar la clave de retorno, quiero saber, no podemos hacerlo sin agregar la tecla – Siddharth
Por supuesto, puede hacerlo sin la tecla Listo, solo cree un método para '- resignFirstResponder' (como en [@PurplePilot] (http://stackoverflow.com/questions/3127104/dismissing-number-pad/3127138#3127138) 's respuesta.) – kennytm