IPad уволить клавиатуру, не зная, какой Textfield открыл его - PullRequest
12 голосов
/ 17 декабря 2010

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

[self resignFirstResponder].

Есть идеи?

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

Ответы [ 5 ]

20 голосов
/ 17 июня 2011

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

- (BOOL)endEditing:(BOOL)force

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

[self.view endEditing:YES];

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

6 голосов
/ 03 июня 2015

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

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

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

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

3 голосов
/ 17 декабря 2010

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

-(void)dismissKeyboard {
    [firstField becomeFirstResponder];
    [firstField resignFirstResponder];
}
1 голос
/ 13 июля 2011

Вы можете проверить следующие вопросы:

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

1 голос
/ 17 декабря 2010

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

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

...