Ainsi, le clavier du pavé numérique n'est pas livré avec un bouton "Terminé" ou "Suivant" par défaut, je voudrais donc en ajouter un. Dans iOS 6 et les versions antérieures, il y avait quelques astuces pour ajouter un bouton au clavier, mais elles ne semblent pas fonctionner sous iOS 7.
Je m'abonne d'abord au clavier affichant la notification
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
Ensuite, j'essaye d'ajouter un bouton lorsque le clavier apparaît:
- (void)keyboardWillShow:(NSNotification *)note
{
// create custom button
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeSystem];
doneButton.frame = CGRectMake(0, 50, 106, 53);
doneButton.adjustsImageWhenHighlighted = NO;
[doneButton setTitle:@"Done" forState:UIControlStateNormal];
[doneButton addTarget:self action:@selector(dismissKeyboard) forControlEvents:UIControlEventTouchUpInside];
// locate keyboard view
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView* keyboard;
for(int i=0; i<[tempWindow.subviews count]; i++)
{
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard view found; add the custom button to it
if([[keyboard description] hasPrefix:@"UIKeyboard"] == YES)
[keyboard addSubview:doneButton];
}
}
Mais la boucle for ne s'exécute pas car elle ne trouve aucune sous-vue. Aucune suggestion? Je n'ai pas trouvé de solution pour iOS7, alors y a-t-il une manière différente de le faire?
Edit: Merci pour toutes les suggestions pour les barres d'outils, mais je préfère ne pas suivre cette voie car je manque d'espace (et c'est un peu moche).