Swift: ¿Habilita el button "quitar el keyboard" en el iPhone?

Veo numerosas publicaciones (por ejemplo, "ocultar el keyboard para el campo de text en un lenguaje de progtwigción rápido" ) sobre cómo hacer que el keyboard desaparezca después de presionar el button de retorno, o haciendo clic fuera de UITextView (y luego renunciando al primer respondedor y / o configurando endEditing a cierto). Esto no es lo que quiero hacer; No quiero usar la tecla de retorno: quiero que el usuario pueda usar la tecla de retorno para agregar realmente una nueva línea al text que están ingresando en UITextView, ni forzar al usuario a hacer clic afuera para descartar el keyboard.

En un iPad hay un button "descartar keyboard" que, naturalmente, aparece como parte del keyboard en sí mismo, que descarta el keyboard. Por lo general, se encuentra en la parte inferior derecha del keyboard (debajo de la tecla Mayús derecha), y es una pequeña image de un keyboard con una flecha hacia abajo.

¿Cómo se habilita este button en un iPhone, es decir, para que el keyboard que aparece también incluya el button de rechazo?

Esta publicación: "dismiss iphone iphone UITextView Keyboard" parece abogar por agregar una barra de herramientas a la parte superior del keyboard. ¿No hay una manera de simplemente seleccionar un keyboard opcional que incluya una opción de tecla de rechazo, similar a la forma en que se puede proporcionar un keyboard con "@" en la pantalla del keyboard principal cuando se espera una dirección de correo electrónico?

Gracias.

PS: para mayor claridad: no quiero configurar la tecla de retorno en "Hecho" (según esta publicación ), quiero mantenerla como una tecla de retorno. Estoy dispuesto a agregar un UIB adicional si esa es la única manera, pero parece que debería haber una opción de keyboard que incluya un button de descarte, además de la tecla de retorno.

Me entristece decir que la respuesta correcta a su request es que no hay manera posible de hacer lo que quiere.

Como ha obtenido de su investigación, la comunidad ha encontrado mucho trabajo alnetworkingedor, pero eso es todo lo que tenemos.

Agregue una notificación, que se activará cuando el keyboard esté a punto de mostrarse.

Luego, personalice una vista, aquí puede cambiarla a su button

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeContentViewPoint:) name:UIKeyboardWillShowNotification object:nil]; - (void) changeContentViewPoint:(NSNotification *)notification{ NSDictionary *userInfo = [notification userInfo]; NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; CGFloat keyBoardEndY = value.CGRectValue.origin.y; // get the y of the keyboard NSNumber *duration = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey]; NSNumber *curve = [userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey]; // add animation, make your view move as the keyboard moves [UIView animateWithDuration:duration.doubleValue animations:^{ [UIView setAnimationBeginsFromCurrentState:YES]; [UIView setAnimationCurve:[curve intValue]]; _mainView.center = CGPointMake(_mainView.center.x, keyBoardEndY - STATUS_BAR_HEIGHT - _mainView.bounds.size.height/2.0); // keyBoardEndY including the height of the status bar, so get rid of this height. }]; }