Baixei o iOS 8 Gold Master para iPhone e SDK.
Testei o aplicativo e ele funciona bem, exceto por uma coisa.
Eu tenho um campo de texto onde um teclado numérico aparecerá se o usuário quiser digitar algo, além disso, um botão personalizado é adicionado à área vazia quando o teclado aparece.
- (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];
}
}
}
}
Isso estava funcionando bem até agora.
Em primeiro lugar, estou recebendo este aviso:
Não é possível encontrar o teclado que suporta o tipo 4 para teclado iPhone-Portrait-NumberPad; usando 3876877096_Portrait_iPhone-Simple-Pad_Default
então, esse botão personalizado também não está sendo exibido, o que acho por causa destas 2 linhas:
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
e
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
Alguma sugestão?
Eu também tive esse problema depois de atualizar para o Xcode Beta mais recente. As configurações no simulador são atualizadas, portanto, o teclado do laptop (externo) foi detectado. Se você simplesmente pressionar:
Simulador iOS -> Hardware -> Teclado -> Conectar teclado de hardware
para que a entrada seja desmarcada, o teclado do software será exibido mais uma vez.
fonte
O emulador tenta encontrar um teclado numérico no mac, mas ele não é encontrado (MacBook Pro, MacBook Air e teclado "normal / pequeno" não têm). Você pode desmarcar a opção Conectar teclado de hardware ou simplesmente ignorar a mensagem de erro, isso não terá nenhum efeito negativo no aplicativo.
fonte
Basta ir para
Isso vai resolver o problema.
Seu teclado MAC não funcionará após realizar a etapa acima. Você deve usar o teclado do simulador.
fonte
Estou usando o xcode com ios 8, basta desmarcar a opção conectar teclado de hardware em seu Simulador-> Hardware-> Teclado-> Conectar teclado de hardware.
Isso resolverá o problema.
fonte
Tive o mesmo problema no Xcode 8.1 e iOS 10.1. O que funcionou para mim foi acessar Simulador-> Hardware-> Teclado e desmarcar Conectar teclado de hardware.
fonte
Vá para Simulador-> Hardware-> Teclado e desmarque Conectar teclado de hardware.
O mesmo que muitas respostas acima, MAS não mudou para mim até eu sair e reiniciar o simulador. xcode 8.2.1 e Simulator 10.0.
fonte
Execute o aplicativo usando o simulador
Simulador iOS-> Hardware-> Teclado -> iOS usa o mesmo layout do OS X
Isso resolverá o problema se alguém estiver executando o aplicativo em seu dispositivo
fonte
Recebi a mesma mensagem de erro por dois motivos distintos, então você pode adicioná-los à sua lista de verificação de depuração:
Contexto: Xcode 6.4, iOS: 8.4. Eu estava adicionando uma barra de ferramentas com
UIBarButton
s personalizados para carregar com oUIKeyboardTypeNumberPad
(Swift :)UIKeyboardType.numberPad
, ou seja, "Concluído" e "+/-". Eu tive esse problema quando:Meu UIToolbar foi declarado como uma propriedade, mas eu tinha esquecido de alocá-lo / iniciá-lo explicitamente.
Eu tinha deixado a última linha,
[myCustomToolbar sizeToFit];
que parece ser da mesma família da resposta de Holden (meu código aqui: https://stackoverflow.com/a/32016397/4898050 ).Boa sorte
fonte
Em seu aplicativo iOS não é possível encontrar um teclado numérico conectado ao seu OS X. Portanto, você só precisa desmarcar a opção conectar teclado de hardware em seu simulador, no seguinte caminho apenas para fins de teste:
Isso resolverá o problema acima.
fonte
Eu tive o mesmo problema ao usar o perfil de provisionamento de distribuição. Verifique se você usa o perfil de desenvolvedor
fonte
Por que o código longo e não usar o UIToolbar? já que o aviso ainda persiste?
UIToolbar está funcionando para qualquer versão do iOS aqui está meu código de exemplo
fonte
Talvez você deva redefinir o frame do botão, eu tive alguns problemas também, e nslog a visualização do teclado assim:
iOS8:
before8:
fonte
Ok, aqui está uma correção simples para obter o botão 'concluído' para mostrar e funcionar em um aplicativo no iOS 9, iOS 8 e inferior quando recebo um erro semelhante. Pode ser observado depois de executar um aplicativo e visualizá-lo via 'View's Hierarchy' (ou seja, clicar no ícone 'View Hierarchy' da barra Debug Area enquanto o aplicativo está sendo executado no dispositivo e inspecionar suas visualizações no Storyboard), que o teclado é apresentado diferentes janelas no iOS 9 em comparação com o iOS 8 e versões anteriores e devem ser consideradas. addButtonToKeyboard
E é assim que você pode remover oKeyboardButton do teclado, se quiser.
fonte