iphone objective-c ios ipad ios-universal-app

iphone - ¿Cómo obtener UITextField Tap Event?



objective-c ios (5)

¡Conecta TextField con delegado y ahora llama a esta función!

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField { textView.text=@" "; return YES; }

Estoy tratando de mostrar UIAlertView en Tap o Click de UITextField para IPad e IPhone. Realizo una acción IBA y la adjunto con el evento Tap Down de UITextField.

Pero no funciona correctamente, significa que no siempre, en caso de iPhone y no funciona en caso de iPad

- (IBAction) TopuchState { //function code }

por favor ayuda ¿Cómo podría hacer esto?


Como ya está suscrito para ser delegado de UITextField, implemente este método:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Alert Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil]; [alert show]; return YES; }


Creo que es más fácil si establece el delegado para el UITextField e implementa el método:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

Luego, dentro de ese método, puede crear y mostrar fácilmente su UIAlertView .

Echa un vistazo a UITextFieldDelegate .

¡Buena suerte!


Intente agregar un destino para cuando un campo de texto en particular comience a editarse ( UIControlEventEditingDidBegin ):

[textField1 addTarget:delegate action:@selector(textField1Active:) forControlEvents:UIControlEventEditingDidBegin];


En swift 3

Agregue un destino para un campo de texto en particular para el evento .editingDidBegin en el método viewDidLoad

self.textField.addTarget(self, action: #selector(textFieldTouched(_:)), for: UIControlEvents.editingDidBegin) func textFieldTouched(textField: UITextField) { //Show AlertView }