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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top