2013-07-22 3 views
1

je tentais d'inclure un UITextField dans un UIAlertView avec le code suivant:resignFirstResponder ne cache pas le clavier

UIAlertView *newLabel = [[UIAlertView alloc]initWithTitle:@"New Label" message:@"\n" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil]; 
UITextField *newLabelNameField = [[UITextField alloc]initWithFrame:CGRectMake(12.0, 45.0, 260.5, 25.0)]; 
newLabelNameField.placeholder = @"Label Name"; 
[newLabelNameField setBackgroundColor:[UIColor whiteColor]]; 
[newLabelNameField resignFirstResponder]; 
[newLabel addSubview:newLabelNameField]; 
[newLabel show]; 

Le principal problème que je suis face est que le resignFirstResponder ne fonctionne pas, c'est le clavier ne pas se cacher lorsque la touche de retour est enfoncée.
Deuxièmement, est-il possible d'écrire une méthode qui doit être exécutée lorsque le bouton OK est pressé, comme dire ajouter le Label Name reçu en utilisant le champ de texte à une base de données. La méthode doit être exécutée uniquement si nous appuyons sur le bouton OK, et non sur le bouton Cancel.

+0

Pas une question Xcode. ---- "resignFirstResponder ne fonctionne pas, c'est-à-dire que le clavier ne se cache pas lorsque la touche de retour est enfoncée." - Non, c'est deux problèmes différents. Vous devez implémenter la méthode déléguée appropriée ('textFieldShouldReturn:') pour y parvenir. –

Répondre

2

1) Pour la deuxième question, d'abord définir une étiquette à UIAlertView comme newLabel.tag = 5;

2) Ensuite, écrivez la méthode de délégué suivante de UIAlertView en cochant tag & buttonindex.

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    if (alertView.tag == 5 && buttonIndex == 1)//OK button clicked 
    { 
     //Write code 
    } 
} 

3) Pour la première question, écrire la méthode délégué de UITextField comme

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    return YES; 
} 
1

pourquoi ne pas vous utilisez textfield par défaut dans UIAlertView essayer une fois comme ça,

UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"Save" message:@"Please Enter the Name" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil]; 
    [alertView setAlertViewStyle:UIAlertViewStylePlainTextInput]; 
    [alertView show]; 

EDIT: vous obtiendrez des données ici

- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView 
{ 
     NSLog(%@"[[alertView textFieldAtIndex:0] text]"); 
    return ([[[alertView textFieldAtIndex:0] text] length]>0)?YES:NO; 

} 
+0

comment obtenir le texte qui est entré dans le champ de texte ainsi généré? –

+1

@Harikrishnan T: une fois vérifier ma réponse. – Balu

Questions connexes