Tudo bem, esse problema está me deixando louco.
Demora cerca de 3-4 segundos para o teclado aparecer depois que eu toco no meu UITextField
. Isso ocorre apenas na primeira vez em que o teclado é exibido desde o lançamento do aplicativo, depois a animação é iniciada instantaneamente.
No começo, pensei que era problema carregar muitas imagens, ou as minhas UITableView
, mas acabei de criar um projeto totalmente novo com apenas uma UITextField
, e ainda sinto esse problema. Estou usando o iOS 5, Xcode ver 4.2 e executando em um iPhone 4S.
Este é o meu código:
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 20, 280, 30)];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.delegate = self;
[self.view addSubview:textField];
}
@end
Esse é um problema comum para todos os aplicativos?
No momento, a única maneira de torná-lo um pouco melhor é ter me textField
tornado / resignador de resposta viewDidAppear
, mas isso não resolve o problema completamente - ele apenas carrega o atraso quando a exibição é carregada. Se eu clicar textField
imediatamente quando a exibição for carregada, continuarei com o problema; se eu esperar de 3 a 4 segundos após o carregamento da visualização antes de tocar no campo de texto, não recebo o atraso.
Portanto, o problema NÃO se limita apenas à primeira instalação, como eu pensava anteriormente, mas acontece sempre que o aplicativo é iniciado. Aqui está a minha solução que resolve o problema completamente.
fonte
Sim, também tive alguns segundos de atraso nos últimos 4s para iPhone. Não entre em pânico. Por alguns motivos, isso acontece apenas na primeira vez em que o aplicativo é carregado do Xcode no Debug. Quando fiz o lançamento, não recebi o atraso. Esqueça...
fonte
Fastest, Smallest [-Os]
. Você pode alterá-loBuild Settings > Optimization Level
Este é um problema conhecido.
O pré-carregamento do teclado parece promissor. Verifica Pré-carregamento do UIKeyboard.
Algum material de leitura adicional:
A exibição inicial do teclado virtual do iPhone é lenta para um UITextField. Esse truque é necessário?
O teclado UITextField bloqueia o runloop durante o carregamento?
http://www.iphonedevsdk.com/forum/iphone-sdk-development/12114-uitextfield-loooong-delay-when-first-tapped.html
fonte
Você pode usar a solução de Vadoff no Swift adicionando isso a didFinishLaunchingWithOptions:
Está funcionando para mim no iOS 8.
fonte
Código no bloco adicionado à fila principal e executado de forma assíncrona. (não trava a linha principal)
fonte
Veja esta resposta . Eles sugerem o UIResponder + KeyboardCache . É simples e incrível. Testado no iOS 7.
fonte
Um problema relacionado, em que um UIViewController demoraria a ser apresentado, foi resolvido usando a fonte do sistema em vez de uma fonte personalizada no UITextField. Talvez o uso da fonte do sistema também funcione para esse problema?
fonte
Este bug parece ter sido corrigido no iOS 9.2.1. Desde a atualização do meu dispositivo, não tenho mais um atraso entre tocar em um campo de texto e o teclado aparecer quando meu dispositivo está conectado ao meu computador.
fonte
Esta resposta selecionada causa uma falha no BAD_EXC no iOS 11 - remover do aplicativo para corrigir
fonte
Você pode adicionar o código abaixo quando a visualização do viewController foi carregada, como viewDidAppear.Não apenas o aplicativo: didFinishLaunchingWithOptions:
fonte