Por lo tanto, el teclado numérico no viene con un botón 'Listo' o 'Siguiente' por defecto, así que me gustaría agregar uno. En iOS 6 y versiones anteriores, había algunos trucos para agregar un botón al teclado, pero parece que no funcionan en iOS 7.
Primero me suscribo al teclado que muestra la notificación
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
Luego trato de agregar un botón cuando aparece el teclado:
- (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];
}
}
Pero el bucle for no se ejecuta porque no encuentra ninguna subvista. ¿Alguna sugerencia? No pude encontrar ninguna solución para iOS7, así que, ¿se supone que debo hacer esto de otra manera?
Editar: Gracias por todas las sugerencias para los chicos de las barras de herramientas, pero prefiero no seguir ese camino ya que tengo poco espacio (y es algo feo).