iphone - ser notificado cuando UITextField BecomeFirstResponder
ios first-responder (4)
¿Cómo puedo recibir una notificación cuando UITextField
becomeFirstResponder
?
Puedo marcar como isFirstResponder
o configurarlo para que se convierta en el primer respondedor por becomeFirstResponder
Quiero ser notificado o manejar un evento cuando un usuario hace que este campo de texto sea el primero en responder.
Gracias.
Además de implementar el método de textFieldDidBeginEditing:
puede registrarse para la notificación UITextFieldTextDidBeginEditingNotification
.
El método de notificación podría ser:
- (void)someTextFieldDidBeginEditing:(NSNotification *)notification {
UITextField *textField = (UITextField *)notification.object;
}
Deberá venir como delegado del campo de texto e implementar este método de delegado opcional:
- (void)textFieldDidBeginEditing:(UITextField *)textField;
El delegado es definitivamente el camino a seguir. Desafortunadamente, en mi situación no pude usar eso, porque el controlador era el delegado de mi subclase UITextField y necesitaba modificar su texto de marcador de posición. En cambio, anulo los métodos - (BOOL)canBecomeFirstResponder;
& - (BOOL)resignFirstResponder;
. Asegúrate de llamar super.
Para OSX, debe tener en cuenta que los botones tienen efectos secundarios al confiar en NSControlTextDidBeginEditingNotification
.
Cuando comience a editar, presione algunos botones y reanude la edición del campo de texto, no obtendrá un segundo NSControlTextDidBeginEditingNotification
cuando reanude la edición.
En caso de que este comportamiento cause un problema, UITextFieldTextDidChangeNotification
podría ser una alternativa.