ipad - tamaño - teclado iphone descargar
¿Cuál es la altura del teclado en pantalla del iPad? (12)
Creo que hay más problemas de los que se resuelven en las respuestas de otros. Por ejemplo, puedes terminar con este teclado:
Esto sucede cuando haces clic en el botón "ocultar" en el teclado del iPad en iOS 9. Este teclado aún tiene tamaño full
en la información de notificación de la respuesta de Mike Gledhill
. (en UIKeyboardFrameEndUserInfoKey
altura del teclado es superior a 300).
Tuve que restar el origen del eje y del teclado desde la altura del dispositivo, para llegar al valor correcto.
- (void)keyboardWillShow:(NSNotification *)notification
NSDictionary *info = [aNotification userInfo];
CGRect keyboardFrame = [info[UIKeyboardFrameBeginUserInfoKey] CGRectValue];
keyboardFrame = [info[UIKeyboardFrameEndUserInfoKey] CGRectValue];
keyboardFrame = [self.view convertRect:keyboardFrame fromView:nil];
CGFloat yPosition = keyboardFrame.origin.y;
NSInteger height = [UIScreen mainScreen].bounds.size.height - yPosition;
}
Funciona para mí en iOS9 con iPhones y iPads en ambas orientaciones.
Estoy buscando dos números aquí: la altura en el retrato y la altura en el paisaje. No responda en cm o pulgadas, sino en píxeles.
En el iPad, el tamaño del teclado también puede depender del idioma (por ejemplo, el teclado japonés es más alto). Otra razón para consultarlo programáticamente.
En iOS 7, para iPad es 402 para Landscape y 314 para Portrait
He votado un par de respuestas en esta página, ya que son peligrosamente engañosas.
Ciertamente, con iOS 8, no puede usar una altura de teclado codificada.
Aquí está mi aplicación, que se ejecuta en un iPhone, para dar mi razón de por qué.
Toma tu regla y dime, ¿cuál es la altura del teclado en pantalla ...?
Ahh ... no puedes hacerlo, ¿verdad?
La altura puede variar, si el usuario enciende la barra de tipo automático en la parte superior del teclado en pantalla (que, dicho sea de paso, desencadena un segundo evento " keyboardWillShow
").
Lo mismo es cierto para el teclado en pantalla en el iPad.
En pocas palabras: lo siento amigos, deben medir la altura del teclado en un evento keyboardWillShow
.
De lo contrario, tendrá problemas.
- (void)keyboardWillShow:(NSNotification *)notification {
NSDictionary *info = [notification userInfo];
NSValue *kbFrame = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardFrame = [kbFrame CGRectValue];
keyboardFrame = [self.view convertRect:keyboardFrame fromView:nil];
CGFloat heightOfKeyboard = keyboardFrame.size.height;
NSLog(@"The keyboard is now %d pixels high.", (int)heightOfKeyboard);
}
Por cierto, no olvides llamar a convertRect
en el código de arriba.
Sin él, descubrí que, en un iPad que se ejecuta en el paisaje con iOS 8, a veces se informa que el teclado tiene una altura de 1024 píxeles.
Solo una cosa más...
Hoy, estaba trabajando en un control personalizado que había escrito, que aparece en la parte inferior de la pantalla del iPhone / iPad, y me di cuenta de que no había tenido en cuenta la altura del teclado en pantalla.
No quería agregar las notificaciones de keyboardWillShow / Hide, ya que este pequeño control era genérico y podía ser llamado desde cualquiera de mis pantallas.
Mi solución para encontrar la altura del teclado en pantalla, si estaba actualmente visible, era usar la excelente función SVProgressHUD
control SVProgressHUD
gratuito.
Ese control también necesitaba la altura del teclado en pantalla, por lo que su mensaje de notificación UIView
s aparecería centrado verticalmente.
Funcionó a la perfección ... así que si necesitas un método rápido y poco confiable para alcanzar la altura del teclado, toma una copia de este código y busca en el archivo SVProgressHUD.m .
Hubo un problema en iOS 7 en el que el alto y el ancho no se intercambiaban en modo horizontal, pero el problema se solucionó en iOS 8.
Entonces, aquí está la pieza de código que siempre devolvería la altura para iOS7 o iOS8, eliminando así la verificación específica de la versión en su código.
- (void)keyboardWasShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
//Always gives the height as the height is of smaller dimension
CGFloat height = (kbSize.height>kbSize.width)?kbSize.width:kbSize.height;
}
La altura del retrato es 264 mientras que la altura del paisaje es 352.
Sé que esta es una respuesta tardía, pero me encontré con esta pregunta yo mismo.
La respuesta es: depende .
Soy consciente de 16 alturas diferentes que puede tener el teclado, y puede estar en cualquier posición.
Es diferente para:
- Retrato de paisaje,
- vista web / vista no web,
- estilo de selección de personajes asiáticos, lenguaje regular
- teclado dividido / no dividido
Adjunto una imagen que muestra algunas configuraciones posibles diferentes.
En lugar de enumerar las 16 posibilidades, creo que desea observar UIKeyboardWillShowNotification
/ UIKeyboardWillHideNotification
y UIKeyboardDidChangeFrameNotification
(iOS 5.0+), y luego obtener el marco del teclado de esos eventos.
Las alturas son: PORTRAIT = 264 LANDSCAPE = 352
No sé qué es, pero podrías descubrirlo con bastante facilidad.
Navega en tu iPad a una página con esto ...
JavaScript
var totalHeight = window.innerHeight;
document.getElementById(''what-is-my-height'').onclick = function() {
alert(totalHeight - window.innerHeight);
};
HTML
<button id="what-is-my-height">Bring up keyboard, then push me</button>
Haga clic en el botón (después de haber abierto el teclado en pantalla), y debería indicar la altura. Repita para la otra orientación.
Puede encontrar esto mediante programación (a través del simulador si no tiene un dispositivo).
Puede obtener la altura del teclado del diccionario userInfo devuelto por la notificación will / did show / hide keyboard, tal como lo proporciona la clase UIWindow ( enlace de guía de referencia ). Esta es una manera mucho mejor de obtener la altura que la codificación rígida porque obtiene los siguientes beneficios:
- Independencia del dispositivo (iPhone / iPod o iPad)
- Independencia de resolución (pantalla iPhone 3G / pantalla retina / pantalla iPad / pantallas futuras).
- Independencia de tipo / estilo de teclado (diferentes teclados en pantalla pueden tener tamaños de diferencia).
De hecho, las respuestas a esta pregunta que dan un número exacto probablemente obtuvieron este número al observar los resultados devueltos dentro de este diccionario.
- (void) keyboardWasShown:(NSNotification *)nsNotification {
NSDictionary *userInfo = [nsNotification userInfo];
CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
NSLog(@"Height: %f Width: %f", kbSize.height, kbSize.width);
// Portrait: Height: 264.000000 Width: 768.000000
// Landscape: Height: 352.000000 Width: 1024.000000
}