Esta pregunta tiene Ya he recibido una respuesta, lo sé porque así es como obtuve la solución. Tiene 2 opciones, la primera es ocultar el teclado implementando un toque en la vista principal que enviará el mensaje de "finalización de la edición". que oculta el teclado [self.view endEditing: YES];
Si agrega el oyente táctil a la vista principal, debe implementar una condición para que los demás botones sigan funcionando.
Lo que quiere hacer para simular una tecla de retorno es añadir realmente así:
Registro para un teclado sí mostró notificación y agregar esto al código:
if ([self.passCodeLabel isFirstResponder])
{
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(0, 163, 106, 53);
//doneButton.frame = CGRectMake(0, 163, 257, 257);
doneButton.adjustsImageWhenHighlighted = NO;
[doneButton setImage:[UIImage imageNamed:@"doneup.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"donedown.png"] forState:UIControlStateHighlighted];
[doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
// locate keyboard view
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
NSLog(@"%@",[[UIApplication sharedApplication] windows]);
UIView* keyboard;
NSLog(@"Shared applicaiton windows count:%i",tempWindow.subviews.count);
for(int i=0; i<[tempWindow.subviews count]; i++) {
keyboard = [tempWindow.subviews objectAtIndex:i];
NSLog(@"%@",[keyboard description]);
// keyboard view found; add the custom button to it
if([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES)
{
NSLog(@"Adding return button");
[keyboard addSubview:doneButton];
}
}
}
Esta voluntad agregue su propia imagen de botón "hecho" al teclado (que puede copiar haciendo una captura de pantalla de la ranura en blanco y agregando el texto hecho).
Por cierto, el código que pegué funciona en mi diseño. Para el tuyo, quizás debas modificarlo un poco, pero el principio es el mismo.
Para iOS 6.1, esto no funcionó a menos que haya inicializado la barra de herramientas con un marco como el siguiente: 'UIToolbar * toolbar = [[UIToolbar alloc] initWithFrame: CGRectMake (0, 0, self.view.bounds.size.width, 44)]; De lo contrario, respuesta perfecta – Segfault
@Segfault Confirmando eso. Necesita especificar un marco para que esto funcione correctamente en 6.1. – Paul
Gracias Segfault, lo editaré. – Oscar