Программно заставить клавиатуру уходить - PullRequest
1 голос
/ 24 сентября 2010

Я сделал текстовое поле, но я не использовал Interface Builder, я сделал это программно в XCode. Так что теперь мне нужен программный способ заставить его подать в отставку первого респондента, чтобы клавиатура исчезла, когда пользователь нажимает ввод.

Ответы [ 3 ]

2 голосов
/ 24 сентября 2010
[textField resignFirstResponder];

документы

, если вы хотите, чтобы оно исчезло при нажатии Enter, вам нужно будет внедрить

- (BOOL)textFieldShouldReturn:(UITextField *)textField

в вашем UITextFieldDelegate

1 голос
/ 24 сентября 2010

В дополнение к ответу Коббала, не забудьте установить делегат текстового поля для класса, который реализует

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
   [textField resignFirstResponder];
   return YES;    
}

Добавление дескриптора к объявлению интерфейса этого класса также является хорошей вещью.

0 голосов
/ 17 января 2011

Я задал себе этот вопрос, и я понимаю, что приведенный выше ответ может быть не тем, что вы спрашиваете.Я предполагаю, что вы добавляете UITextField как подпредставления к некоторому представлению, когда вы говорите «двойное касание» (или какое-то другое событие).Важно сделать контроллер делегатом этого подпредставления.

-(void)handleDoubleTapGesture:(UITapGestureRecognizer *)gestureRecognizer{
     //some other code creating the textfield 
     [aTextField setDelegate:self];

В этом случае я использовал сам контроллер.

Теперь внутри этого контроллера я могу реализовать

-(BOOL) textFieldShouldReturn:(UITxtField *)textField

и все заработает.

...