texto teclado tamaño predictivo pantalla descargar color cambio cambiar aumentar iphone ios8

tamaño - teclado iphone descargar



No se puede encontrar el plano de teclado que admite el tipo 4 para el teclado iPhone-Portrait-NumberPad; usando 3876877096_Portrait_iPhone-Simple-Pad_Default (13)

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 funcionaba bien hasta ahora.

Antes que nada, recibo esta advertencia:

No se puede encontrar el plano de teclado que admite 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?


¿Por qué el código largo y no usar la UIToolbar? ya que la advertencia aún persiste?

UIToolbar está trabajando para cualquier versión de iOS aquí está mi código de muestra

UIToolbar *doneToolbar = [[UIToolbar alloc] initWithFrame:(CGRect){0, 0, 50, 50}]; // Create and init doneToolbar.barStyle = UIBarStyleBlackTranslucent; // Specify the preferred barStyle doneToolbar.items = @[ [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(doneEditAction)] // Add your target action ]; // Define items -- you can add more yourField.inputAccessoryView = doneToolbar; // Now add toolbar to your field''s inputview and run [doneToolbar sizeToFit]; // call this to auto fit to the view - (void)doneEditAction { [self.view endEditing:YES]; }


De acuerdo, aquí hay una solución simple para mostrar el botón ''listo'' y trabajar en una aplicación tanto en iOS 9, iOS 8 como en versiones inferiores cuando recibí un error similar. Se puede observar después de ejecutar una aplicación y verla a través de "Jerarquía de vistas" (es decir, hacer clic en el icono "Ver jerarquía" de la barra de Área de depuración mientras la aplicación se está ejecutando en el dispositivo e inspeccionar sus vistas en Guión gráfico). diferentes ventanas en iOS 9 en comparación con iOS 8 y versiones inferiores y deben tenerse en cuenta. addButtonToKeyboard

- (id)addButtonToKeyboard { if (!doneButton) { // 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]; } NSArray *windows = [[UIApplication sharedApplication] windows]; //Check to see if running below iOS 9,then return the second window which bears the keyboard if ([[[UIDevice currentDevice] systemVersion] floatValue] < 9.0) { return windows[windows.count - 2]; } else { UIWindow* keyboardWithDoneButtonWindow = [ windows lastObject]; return keyboardWithDoneButtonWindow; } }

Y así es como podría eliminarKeyboardButton del teclado si lo desea.

- (void)removeKeyboardButton { id windowTemp = [self addButtonToKeyboard]; if (windowTemp) { for (UIView *doneButton in [windowTemp subviews]) { if ([doneButton isKindOfClass:[UIButton class]]) { [doneButton setHidden:TRUE]; } } } }


Ejecuta la aplicación usando el simulador

Simulador de iOS-> Hardware-> Teclado-> iOS usa el mismo diseño que OS X

Esto solucionará el problema si alguien está ejecutando su aplicación en su dispositivo


El emulador intenta encontrar un teclado numérico en el mac, pero no se encuentra (MacBook Pro, MacBook Air y el teclado "normal / pequeño" no lo tienen). Puede anular la selección de la opción Connect Hardware Keyboard o simplemente ignorar el mensaje de error, no tendrá ningún efecto negativo en la aplicación.


Estoy utilizando xcode con iOS 8, solo desmarque la opción de conectar el teclado de hardware en su Simulador-> Hardware-> Teclado-> Conectar Hardware Teclado.

Esto resolverá el problema.


Recibí el mismo mensaje de error por dos razones diferentes, por lo que puede agregarlas a su lista de verificación de depuración:

Contexto: Xcode 6.4, iOS: 8.4. Estaba agregando una barra de herramientas con UIBarButton s personalizado para cargar con el UIKeyboardTypeNumberPad (Swift: UIKeyboardType.numberPad ), es decir, "Hecho" y "+/-". Tuve este problema cuando:

  1. Mi UIToolbar fue declarado como propiedad, pero olvidé explícitamente asignarlo / iniciarlo.

  2. Había dejado la última línea, [myCustomToolbar sizeToFit]; , que suena como si fuera la misma familia que la respuesta de Holden (mi código aquí: https://.com/a/32016397/4898050 ).

Buena suerte


Tal vez deberías restablecer el marco del botón, también tuve algún problema, y ​​nslog la vista del teclado de esta manera:

ios8:

"<UIInputSetContainerView: 0x7fef0364b0d0; frame = (0 0; 320 568); autoresize = W+H; layer = <CALayer: 0x7fef0364b1e0>>"

before8:

"<UIPeripheralHostView: 0x11393c860; frame = (0 352; 320 216); autoresizesSubviews = NO; layer = <CALayer: 0x11393ca10>>"


También tuve este problema y encontré la solución.

A continuación se muestra el código que funcionará para iOS 8.0 y también para las versiones siguientes.

Lo he probado en iOS 7 y 8.0 (Xcode Version 6.0.1)

- (void)addButtonToKeyboard { // create custom button self.doneButton = [UIButton buttonWithType:UIButtonTypeCustom]; //This code will work on iOS 8.3 and 8.4. if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.3) { self.doneButton.frame = CGRectMake(0, [[UIScreen mainScreen] bounds].size.height - 53, 106, 53); } else { self.doneButton.frame = CGRectMake(0, 163+44, 106, 53); } self.doneButton.adjustsImageWhenHighlighted = NO; [self.doneButton setTag:67123]; [self.doneButton setImage:[UIImage imageNamed:@"doneup1.png"] forState:UIControlStateNormal]; [self.doneButton setImage:[UIImage imageNamed:@"donedown1.png"] forState:UIControlStateHighlighted]; [self.doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside]; // locate keyboard view int windowCount = [[[UIApplication sharedApplication] windows] count]; if (windowCount < 2) { return; } UIWindow *tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1]; UIView *keyboard; for (int i = 0; i < [tempWindow.subviews count]; i++) { keyboard = [tempWindow.subviews objectAtIndex:i]; // keyboard found, add the button if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.3) { UIButton *searchbtn = (UIButton *)[keyboard viewWithTag:67123]; if (searchbtn == nil) [keyboard addSubview:self.doneButton]; } else { if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES) { UIButton *searchbtn = (UIButton *)[keyboard viewWithTag:67123]; if (searchbtn == nil)//to avoid adding again and again as per my requirement (previous and next button on keyboard) [keyboard addSubview:self.doneButton]; } //This code will work on iOS 8.0 else if([[keyboard description] hasPrefix:@"<UIInputSetContainerView"] == YES) { for (int i = 0; i < [keyboard.subviews count]; i++) { UIView *hostkeyboard = [keyboard.subviews objectAtIndex:i]; if([[hostkeyboard description] hasPrefix:@"<UIInputSetHost"] == YES) { UIButton *donebtn = (UIButton *)[hostkeyboard viewWithTag:67123]; if (donebtn == nil)//to avoid adding again and again as per my requirement (previous and next button on keyboard) [hostkeyboard addSubview:self.doneButton]; } } } } } }

>

- (void)removedSearchButtonFromKeypad { int windowCount = [[[UIApplication sharedApplication] windows] count]; if (windowCount < 2) { return; } UIWindow *tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1]; for (int i = 0 ; i < [tempWindow.subviews count] ; i++) { UIView *keyboard = [tempWindow.subviews objectAtIndex:i]; if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.3){ [self removeButton:keyboard]; } else if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES) { [self removeButton:keyboard]; } else if([[keyboard description] hasPrefix:@"<UIInputSetContainerView"] == YES){ for (int i = 0 ; i < [keyboard.subviews count] ; i++) { UIView *hostkeyboard = [keyboard.subviews objectAtIndex:i]; if([[hostkeyboard description] hasPrefix:@"<UIInputSetHost"] == YES) { [self removeButton:hostkeyboard]; } } } } } - (void)removeButton:(UIView *)keypadView { UIButton *donebtn = (UIButton *)[keypadView viewWithTag:67123]; if(donebtn) { [donebtn removeFromSuperview]; donebtn = nil; } }

Espero que esto ayude.

Pero, sigo recibiendo esta advertencia:

No se puede encontrar el plano de teclado que admite el tipo 4 para el teclado iPhone-Portrait-NumberPad; usando 3876877096_Portrait_iPhone-Simple-Pad_Default

Ignorando esta advertencia, lo hice funcionar. Por favor, avíseme si puede obtener alivio de esta advertencia.


Tuve el mismo problema al usar el perfil de suministro de distribución. Compruebe que usa el perfil de desarrollador


Tuve el mismo problema en Xcode 8.1 y iOS 10.1. Lo que funcionó para mí fue ir a Simulator-> Hardware-> Keyboard y desmarcar Connect Hardware Keyboard.


Utilizar esta-

Vaya a iOS Simulator-> Hardware-> Keyboard -> Desmarque la opción Connect Hardware Keyboard. Esto solucionará el problema.


Vaya a Simulator-> Hardware-> Keyboard y desmarque Connect Hardware Keyboard.

Lo mismo que muchas respuestas anteriores PERO no cambié para mí hasta que salí y reinicié el simulador. xcode 8.2.1 y Simulator 10.0.


Yo también tuve este problema después de actualizar a la última Xcode Beta. La configuración en el simulador se actualiza, por lo que se detecta el teclado del portátil (externo). Si simplemente presionas:

Simulador iOS -> Hardware -> Teclado -> Conectar Hardware Teclado

para que la entrada no esté marcada, se volverá a mostrar el teclado del software.