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.