2009-05-20 4 views
0

Est-il possible de savoir quand l'utilisateur touche le clavier de l'iPhone? Lorsque l'utilisateur touche un bouton du clavier ...:/Clavier Iphone

Répondre

1

La méthode la plus simple consiste à utiliser un TextField. Même votre interface utilisateur n'en appelle pas un, vous pouvez définir son cadre à zéro afin qu'il n'apparaisse pas à l'écran. Vous pouvez ensuite accéder aux touches enfoncées à l'aide des méthodes de rappel déléguées du champ de texte.

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    //CGRectZero because we don't want the textfield to be shown onscreen 
    UITextField *f = [[UITextField alloc] initWithFrame:CGRectZero]; 
    //We set the delegate so we can grab keypressed 
    f.delegate = self; 
    [self.view addSubview:f]; 
    [f becomeFirstResponder]; //Show the keyboard 
} 

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range 
                 replacementString:(NSString *)string { 
    if (string.length >0) { 
     NSLog(@"%@ Pressed",string); 
    } 
    else { 
     NSLog(@"Backspcae pressed"); 
    }   
} 

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    NSLog(@"return pressed"); 
    return YES; 
} 

Remarque: pour éviter un avertissement du compilateur, assurez-vous dans votre fichier .h la classe dit explicitement qu'elle met en œuvre le protocal UITextFieldDelegate. à savoir:

@interface MyViewController : UIViewController <UITextFieldDelegate> 
+0

Puis-je demander si vous avez testé cela avec backspace, de ce que j'ai lu ailleurs que la méthode de délégué ne se déclenche pas sur backspace, juste curieux – paulthenerd

+0

je ne sais pas ... Je pense que u ne comprenez-moi ... j'ai besoin de savoir si l'utilisateur touche le clavier ... – Helena

+0

pauls ... non je n'ai pas testé cela avec retour arrière – Helena

Questions connexes