Descargué iOS 8 Gold Master para iPhone y SDK.
Probé la aplicación y funciona bien, excepto por una cosa.
Tengo un campo de texto donde aparecerá un teclado numérico si el usuario quiere escribir algo, además, se agrega un botón personalizado al área vacía cuando aparece el teclado.
- (void)addButtonToKeyboard
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
// create custom button
UIButton * doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(-2, 163, 106, 53);
doneButton.adjustsImageWhenHighlighted = NO;
[doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
[doneButton addTarget:self action:@selector(saveNewLead:) 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 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
[keyboard addSubview:doneButton];
} else {
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
[keyboard addSubview:doneButton];
}
}
}
}
Esto estaba funcionando bien hasta ahora.
En primer lugar, recibo esta advertencia:
No se puede encontrar el plano de teclas que admita el tipo 4 para el teclado iPhone-Portrait-NumberPad; usando 3876877096_Portrait_iPhone-Simple-Pad_Default
entonces ese botón personalizado tampoco se muestra, lo cual creo que debido a estas 2 líneas:
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
y
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
¿Alguna sugerencia?
Yo también tuve este problema después de actualizar a la última versión beta de Xcode. La configuración del simulador se actualiza, por lo que se detecta el teclado (externo) de la computadora portátil. Si simplemente presiona:
Simulador de iOS -> Hardware -> Teclado -> Conectar teclado de hardware
para que la entrada no esté marcada, el teclado del software se mostrará una vez más.
fuente
El emulador intenta encontrar un teclado numérico en la Mac, pero no lo encuentra (MacBook Pro, MacBook Air y el teclado "normal / pequeño" no lo tienen). Puede anular la selección de la opción Conectar teclado de hardware o simplemente ignorar el mensaje de error, no tendrá ningún efecto negativo en la aplicación.
fuente
Solo ve a
Esto solucionará el problema.
Su teclado MAC no funcionará después de realizar el paso anterior. Debe usar el teclado del simulador.
fuente
Estoy usando xcode con ios 8, simplemente desmarque la opción de conectar el teclado de hardware en su Simulador-> Hardware-> Teclado-> Conectar teclado de hardware.
Esto solucionará el problema.
fuente
Tuve el mismo problema en Xcode 8.1 y iOS 10.1. Lo que funcionó para mí fue ir a Simulador-> Hardware-> Teclado y desmarcar Conectar teclado de hardware.
fuente
Vaya a Simulador-> Hardware-> Teclado y desmarque Conectar teclado de hardware.
Lo mismo que muchas respuestas anteriores, PERO no cambiaron para mí hasta que salí y reinicié el simulador. xcode 8.2.1 y Simulator 10.0.
fuente
Ejecute la aplicación usando el simulador
iOS Simulator-> Hardware-> Keyboard -> iOS usa el mismo diseño que OS X
Esto solucionará el problema si alguien está ejecutando su aplicación en su dispositivo
fuente
Recibí el mismo mensaje de error por dos motivos distintos, por lo que puede agregarlos a su lista de verificación de depuración:
Contexto: Xcode 6.4, iOS: 8.4. Estaba agregando una barra de herramientas con mensajes personalizados
UIBarButton
para cargar conUIKeyboardTypeNumberPad
(Swift :)UIKeyboardType.numberPad
, a saber, "Listo" y "+/-". Tuve este problema cuando:Mi UIToolbar se declaró como una propiedad, pero me había olvidado de asignar / init explícitamente.
Había dejado la última línea,
[myCustomToolbar sizeToFit];
que parece que es la misma familia que la respuesta de Holden (mi código aquí: https://stackoverflow.com/a/32016397/4898050 ).Buena suerte
fuente
En su aplicación iOS no puede encontrar un teclado numérico conectado a su OS X. Por lo tanto, solo necesita desmarcar la opción Conectar teclado de hardware en su simulador, en la siguiente ruta solo para fines de prueba:
Esto resolverá el problema anterior.
fuente
Tuve el mismo problema al usar el perfil de aprovisionamiento de distribución. Comprueba que utilizas el perfil de desarrollador
fuente
¿Por qué el código largo y no usar la UIToolbar? ya que la advertencia aún persiste?
UIToolbar está funcionando para cualquier versión de iOS aquí está mi código de muestra
fuente
Tal vez debería restablecer el marco del botón, yo también tuve algún problema, y nslog la vista del teclado de esta manera:
ios8:
before8:
fuente
De acuerdo, aquí hay una solución simple para hacer que el botón 'Listo' se muestre y funcione en una aplicación tanto en iOS 9, iOS 8 y versiones anteriores cuando recibí un error similar. Se podría observar después de ejecutar una aplicación y verla a través de 'Ver jerarquía' (es decir, hacer clic en el icono 'Ver jerarquía' de la barra del área de depuración mientras la aplicación se está ejecutando en el dispositivo e inspeccionar sus vistas en Storyboard), que el teclado se presenta en diferentes ventanas en iOS 9 en comparación con iOS 8 y versiones anteriores y deben tenerse en cuenta. addButtonToKeyboard
Y así es como puede eliminarKeyboardButton del teclado si lo desea.
fuente