Como fazer o teclado desaparecem no simulador iphone
Pergunta
Eu tenho caixa de entrada um texto no meu iphone app, quando você tocá-lo no simulador, o teclado aparece. Mas não há nenhuma maneira de se livrar dele. Outras páginas da web dar soluções, sem explicar por que eles deveriam trabalhar, e eles não funcionam para mim. Diz fazer delegado da caixa de texto a sua UIView em seguida, chamar resignfirstresponder no objeto, mas nunca é chamado. Alguma sugestão? Alguém pode explicar o que está realmente acontecendo? Eu posso descobrir sozinho se eu sabia o que o paradigma do projeto foi ...
Talvez eu deva colocar um botão "Go" por isso tenho algo para obter o foco para longe do campo de texto?
Solução
Uma maneira de fazer isso é definir um objeto como o delegado ao campo de texto e implementar
- (BOOL)textFieldShouldReturn:(UITextField *)textField
em que você chama [textField resignFirstResponder]
Isto fará com que o teclado a desaparecer quando eles empurram o retorno botão / done / ir (o que você definir a chave de teclado canto inferior direito para ser).
Consulte a referência UITextFieldDelegate para mais informações.
Outras dicas
Para descartar teclado você pode usar TextField Delegado.
Para usar este siga estes passos ...
1. Em que você viewController h adicionar a declaração delegado assim.:
@interface ViewController : UIViewController <UITextFieldDelegate>
{
}
2. Em sua viewController m chamar esse método.:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
3. Em seguida, escrever um código como este:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
4. O passo final é definir delegado do textField:
- (void)viewDidLoad {
[super viewDidLoad];
self.textField.delegate = self;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
em sua delegado é chamado quando o botão de retorno é pressionado.
Você deseja chamar [textField resignFirstResponder]
e depois voltar YES
. Isso deve fazer o truque. Também certifique-se o delegado está definido. Em caso de dúvida, adicione um ponto de ruptura ou NSLog
e verificar.