J'essaie d'afficher UIAlertView sur Tap ou Click sur UITextField pour IPad et IPhone. Je fais une IBAction et je l'attache avec l'événement Tap Down de UITextField.
Mais cela ne fonctionne pas correctement, cela ne signifie pas toujours, en cas d'iphone et ne fonctionne pas en cas d'iPad
- (IBAction) TopuchState
{
//function code
}
s'il vous plaît aider Comment pourrais-je faire cela.
Essayez d'ajouter une cible pour le début de la modification d'un champ de texte particulier (UIControlEventEditingDidBegin
):
[textField1 addTarget:delegate action:@selector(textField1Active:) forControlEvents:UIControlEventEditingDidBegin];
Comme vous êtes déjà abonné pour être délégué UITextField, implémentez cette méthode:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Alert Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
[alert show];
return YES;
}
Dans Swift
Ajouter une cible pour un champ de texte particulier pour l'événement .editingDidBegin dans la méthode viewDidLoad
self.textField.addTarget(self, action: #selector(textFieldTouched(_:)), for: UIControlEvents.editingDidBegin)
func textFieldTouched(textField: UITextField) {
//Show AlertView
}
Je pense que c'est plus facile si vous définissez le délégué pour le UITextField
et implémentez la méthode:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
puis à l'intérieur de cette méthode, vous pouvez facilement créer et afficher votre UIAlertView
.
Jetez un oeil à ITextFieldDelegate .
Bonne chance!
Connectez TextField avec délégué et appelez maintenant cette fonction !!
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
textView.text=@" ";
return YES;
}