¿Hay alguna forma de habilitar o deshabilitar la clave de devolución mediante programación en el UIKeyboard
? Lo más cerca que pude encontrar es enablesReturnKeyAutomatically
, pero eso solo dirá si desactivarlo en absoluto.¿Cómo deshabilitar/habilitar la clave de retorno en un UITextField?
Respuesta
Si puede obtener el objeto UIKeyboard en sí mismo (algo que no está expuesto en el SDK, entonces, Apple podría no estar satisfecho si utiliza estas llamadas), entonces hay una conveniente función setReturnKeyEnabled: member.
id keyboard = [self magicallyGetAUIKeyboardInstance];
[keyboard setReturnKeyEnabled: NO];
(a través de Erica Sadun's dump de los marcos iPhone 2.2)
La implementación de magicallyGetAUIKeyboardInstance
se describe here.
Una buena idea es crear un archivo para acceder a esta clase desde cualquier lugar. Aquí está el código:
UIKeyboard.h
#import <UIKit/UIKit.h>
@interface UIApplication (KeyboardView)
- (UIView *)keyboardView;
@end
UIKeyboard.m
#import "UIKeyboard.h"
@implementation UIApplication (KeyboardView)
- (UIView *)keyboardView
{
NSArray *windows = [self windows];
for (UIWindow *window in [windows reverseObjectEnumerator])
{
for (UIView *view in [window subviews])
{
if (!strcmp(object_getClassName(view), "UIKeyboard"))
{
return view;
}
}
}
return nil;
}
@end
Ahora se puede importar y tener acceso a esta clase de su propia clase:
#import "UIKeyboard.h"
// Keyboard Instance Pointer.
UIView *keyboardView = [[UIApplication sharedApplication] keyboardView];
Una documentación completa de esta clase se puede encontrar aquí:http://ericasadun.com/iPhoneDocs/_u_i_keyboard_8h-source.html
Más información se puede encontrar aquí:http://cocoawithlove.com/2009/04/showing-message-over-iphone-keyboard.html
Probabilidad de rechazo de la tienda de aplicaciones: 100% – Barry
puede estar siguiendo segmento de código ayuda.
textfield.enablesReturnKeyAutomatically = YES;
Esto está públicamente disponible en iPhone SDK en UITextInputTraits. Al usar esto, la tecla de retorno se desactivará cuando no haya texto de entrada disponible en el campo de texto
@ Pyraego.com, sin falta de respeto, pero ¿cómo es un "buen hallazgo" cuando esta respuesta ya estaba contenida en la pregunta del OP? –
En Swift: textfield.enablesReturnKeyAutomatically = true – AmyNguyen
Puede sonar tonto, pero quería esta respuesta cuando vine aquí. Al igual que creo que mucha gente lo hace, hice clic ciegamente en el primer enlace que apareció en Google, salté la pregunta por completo y leí las primeras dos respuestas –
UITextField
La propiedad enablesReturnKeyAutomatically
se puede configurar directamente en Interface Builder, simplemente seleccione el campo de texto y abra el inspector de atributos. Como declaró Tharindu, esto habilitará y deshabilitará automáticamente la tecla de retorno dependiendo de si se ha ingresado algún texto.
Por supuesto, si necesita cambiar esto en código que todavía se puede establecer mediante programación utilizando nameTextField.enablesReturnKeyAutomatically = true
.
EDITAR para hacer frente a los downvotes:
De lo contrario, no hay manera oficial para activar y desactivar la tecla de retorno a la orden. Recomendaría no intentar usar API privadas para lograr esto. Alternativamente, puede usar el método delegado textFieldShouldReturn:
y poner allí su condicional/validación y responder en consecuencia.
Puede anular UITextField
's hasText
de atributos para lograrlo:
class CustomTextField : UITextField {
override public var hasText: Bool {
get {
return evaluateString(text)
}
}
}
Dónde evaluateString(_ text: String?) -> Bool
cheques contra sus criterios de entrada necesarios, por ejemplo, recuento de caracteres.
Por supuesto, esto solo funciona en combinación con enablesReturnKeyAutomatically = true
en el UITextField
.
Soy consciente de que mi respuesta no es oportuna ni está escrita en Objective-C, pero dado que no he podido encontrar una respuesta en otro lugar y se hace referencia rutinaria a esta pregunta en otros hilos, creo que aquí está el mejor lugar para publicarlo.
Esto funciona, pero hace que la contraseña del teclado El accesorio nunca desaparezca. – Sethmr
- 1. cómo agregar una acción en la tecla de retorno UITextField?
- 2. iOS: ¿Cómo enviar la clave a UITextField?
- 3. ¿Cómo ocultar el teclado cuando presiono la tecla de retorno en un UITextField?
- 4. ¿Cómo seleccionar un UITextField?
- 5. UITextField texto de la tecla de retorno cambia de "Hecho" a "Publicar"
- 6. iPhone UITextField: ¿cómo insertar una nueva línea con la tecla de retorno?
- 7. habilitando el "botón de retorno" en un teclado UITextField (objetivo-c/iphone)
- 8. UITextField en un UITableViewCell
- 9. Cómo crear un UITextfield multilínea?
- 10. ¿Cómo puedo manejar la tecla Retorno en un control CEdit?
- 11. ¿Cómo creo un UITextField transparente?
- 12. La mejor manera de borrar un UITextField
- 13. Texto de la tecla de retorno del iPhone personalizado
- 14. ¿Cómo saber qué UITextField causó un UIKeyboardWillShowNotification?
- 15. Cómo determinar la longitud del texto en un UITextfield
- 16. Filtrar caracteres ingresados en un UITextField
- 17. La mejor manera de usar la versión "Siguiente" del botón Volver en UITextField para pasar al siguiente UITextField
- 18. Cómo agregar UILongPressGestureRecognizer a un UITextField?
- 19. Cómo deshabilitar y ocultar un UITextField
- 20. resignFirstResponder entendimiento con UITextField
- 21. ¿Cómo obtengo el texto de UITextField en un NSString?
- 22. ¿Cómo puedo limitar el número de decimales en un UITextField?
- 23. Colocando un UITextField en el centro de la vista
- 24. UITextField ignorando la entradaDelegate‽
- 25. ¿Ajustar texto en UITextField?
- 26. ¿Puedo detectar la clave de eliminación incluso si el UITextField está vacío?
- 27. ¿Cómo establecer la autocapitalización en el UITExtField de UIAlertView?
- 28. Poner un título de solo lectura en un UITextField
- 29. ¿Cómo se diferencia el valor de retorno de SessionContext.getBusinessObject() de 'this' palabra clave en el bean?
- 30. UITextField ¿texto en negrita?
No he tenido la oportunidad de probarlo todavía, pero ¿no debería funcionar solo el [UIKeyboard activeKeyboard]? –
¿Es seguro que Apple rechazará una aplicación que use este código? Incluso si la implementación es apropiada? – samvermette
@sam Es muy poco probable que Apple pruebe su llamada a este método, pero es posible que cambien la API subyacente y rompan su código. – bshirley