Подтвердить что ты не робот

IPad отменить клавиатуру, не зная, какое текстовое поле открыло ее

Есть ли способ сделать общий resignFirstResponder, чтобы скрыть клавиатуру, независимо от того, что ее называет textfield/view/etc?

Причина в том, что у меня много текстовых полей на моем представлении и не хочу иметь resignFirstResponder для всех текстовых полей, чтобы скрыть клавиатуру. Просто хочу общий

[self resignFirstResponder].

Любые идеи?

Заранее спасибо

4b9b3361

Ответ 1

Самый простой способ сделать это - иметь метод для всякий раз, когда вы хотите отклонить клавиатуру, которая выглядит так:

-(void)dismissKeyboard {
    [firstField becomeFirstResponder];
    [firstField resignFirstResponder];
}

Ответ 2

Я знаю, что это уже было отмечено как ответ, но для тех, которые работают в этом, как и я, вы можете просто использовать следующий метод в представлении, содержащем текстовые поля.

- (BOOL)endEditing:(BOOL)force

Этот метод просматривает текущее представление и его иерархию подкастов для текстового поля, которое в настоящее время является первым ответчиком. Если он найдет один, он попросит, чтобы текстовое поле ушло в отставку в качестве первого ответчика. Если параметр force установлен в YES, текстовое поле никогда не запрашивается; он вынужден уйти в отставку. Документация UIView

[self.view endEditing:YES];

он будет скрывать клавиатуру, когда мы нажимаем на нее.

Ответ 3

Вы можете отключить клавиатуру без ссылки на UITextfield/UITextView с помощью кода ниже:

[[[UIApplication sharedApplication] keyWindow] endEditing:YES];

это приведет к отмене клавиатуры во всем мире без ссылки.

надеюсь, что это поможет вам.

Ответ 4

В моем собственном приложении, когда у меня было более одного текстового поля, и хотелось бы, чтобы клавиатура ушла, независимо от того, какое из названных им полей, я просто написал метод и позволю каждому из них resignFirstResponder.

Я предполагаю, что в качестве программиста вы должны иметь четкое представление о том, сколько текстовых полей находится на вашем контроллере представления, и как вы можете получить к ним доступ, иначе он будет запутан, и приложение не будет выглядеть хорошо...:-P

Ответ 5

Вы можете проверить эти вопросы:

Вкратце: Вы можете вызвать beFirstResponder на какую-то другую вещь, которую вы выберете. Это может быть UIViewController или UIView. Раньше у меня была аналогичная проблема, мне нужно было отключить клавиатуру, когда я подталкивал контроллер своего вида к своему вызывающему абоненту, не зная, какое текстовое поле было первым ответчиком. Затем, на viewWillAppear моего контроллера представления, который я возвращал назад, я позвонил [selfirstFestponder], и клавиатура сдвинутого представления исчезла. Поскольку это создавало то, что текстовое поле было свободным, это первый ответчик