0 votes

Méthode pour appeler par téléphone à partir d'un UITextField

J'ai un problème. J'ai implémenté un UITextField qui contient un numéro de téléphone, puis j'ai implémenté la méthode suivante pour appeler le numéro de téléphone :

- (void)rufeAn{
NSString *prefix = (@"tel://");
UIApplication *app = [UIApplication sharedApplication];
NSString *dialThis = [NSString stringWithFormat:@"%@%@", prefix, map.kordinate.telefon];
NSURL *url = [NSURL URLWithString:dialThis];
[app openURL:url];

}

Mais comment puis-je dire au textField, lorsque je le touche, de lancer la méthode et de composer ?

mes salutations à tous les assistants !

5voto

St3fan Points 16196

Le fait de toucher un champ de texte ne devrait jamais entraîner d'action. À mon avis, c'est une mauvaise conception de l'interface utilisateur. Pourquoi ne pas ajouter un bouton à côté du champ qui exécute le code ci-dessus ?

2voto

Rob Napier Points 92148

Je suis d'accord avec St3fan pour dire qu'un TextField normal ne devrait jamais provoquer une action en tapant dessus. Je vais supposer pour le moment que vous avez un UITextField spécial qui peut être rendu non modifiable et qui ressemble alors à un UILabel formaté pour ressembler à un lien hypertexte. Une telle interface utilisateur pourrait être correcte. Il serait bien sûr incorrect d'appuyer sur un champ de texte qui semble modifiable mais qui, en réalité, passe un appel téléphonique.

Vous pourriez mettre en œuvre la UITextFieldDelegate protocole et surveiller textFieldShouldBeginEditing: . Puisque ce champ de texte n'est pas modifiable, vous devez évidemment renvoyer NO.

Vous pouvez ajouter un bouton "appeler" à l'intérieur du champ de texte en utilisant ses vues superposées ( leftView o rightView (lisez les documents relatifs à l'UE appropriée pour ceux-ci).

Vous pourriez sous-classer UITextField pour passer outre touchesBegan:withEvent , touchesEnded:withEvent: y touchesCancelled:withEvent: pour gérer le toucher vous-même. N'oubliez pas : vous devez recevoir un touchesBegan y touchesEnded sans un touchesCancelled entre eux afin de considérer qu'il s'agit d'une touche. Ne déclenchez jamais une action basée uniquement sur touchesBegan .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X