Ответ 1
Самый простой способ сделать это - иметь метод для всякий раз, когда вы хотите отклонить клавиатуру, которая выглядит так:
-(void)dismissKeyboard {
[firstField becomeFirstResponder];
[firstField resignFirstResponder];
}
Есть ли способ сделать общий resignFirstResponder
, чтобы скрыть клавиатуру, независимо от того, что ее называет textfield/view/etc?
Причина в том, что у меня много текстовых полей на моем представлении и не хочу иметь resignFirstResponder
для всех текстовых полей, чтобы скрыть клавиатуру. Просто хочу общий
[self resignFirstResponder]
.
Любые идеи?
Заранее спасибо
Самый простой способ сделать это - иметь метод для всякий раз, когда вы хотите отклонить клавиатуру, которая выглядит так:
-(void)dismissKeyboard {
[firstField becomeFirstResponder];
[firstField resignFirstResponder];
}
Я знаю, что это уже было отмечено как ответ, но для тех, которые работают в этом, как и я, вы можете просто использовать следующий метод в представлении, содержащем текстовые поля.
- (BOOL)endEditing:(BOOL)force
Этот метод просматривает текущее представление и его иерархию подкастов для текстового поля, которое в настоящее время является первым ответчиком. Если он найдет один, он попросит, чтобы текстовое поле ушло в отставку в качестве первого ответчика. Если параметр force установлен в YES, текстовое поле никогда не запрашивается; он вынужден уйти в отставку. Документация UIView
[self.view endEditing:YES];
он будет скрывать клавиатуру, когда мы нажимаем на нее.
Вы можете отключить клавиатуру без ссылки на UITextfield/UITextView с помощью кода ниже:
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
это приведет к отмене клавиатуры во всем мире без ссылки.
надеюсь, что это поможет вам.
В моем собственном приложении, когда у меня было более одного текстового поля, и хотелось бы, чтобы клавиатура ушла, независимо от того, какое из названных им полей, я просто написал метод и позволю каждому из них resignFirstResponder
.
Я предполагаю, что в качестве программиста вы должны иметь четкое представление о том, сколько текстовых полей находится на вашем контроллере представления, и как вы можете получить к ним доступ, иначе он будет запутан, и приложение не будет выглядеть хорошо...:-P
Вы можете проверить эти вопросы:
Вкратце: Вы можете вызвать beFirstResponder на какую-то другую вещь, которую вы выберете. Это может быть UIViewController или UIView. Раньше у меня была аналогичная проблема, мне нужно было отключить клавиатуру, когда я подталкивал контроллер своего вида к своему вызывающему абоненту, не зная, какое текстовое поле было первым ответчиком. Затем, на viewWillAppear моего контроллера представления, который я возвращал назад, я позвонил [selfirstFestponder], и клавиатура сдвинутого представления исчезла. Поскольку это создавало то, что текстовое поле было свободным, это первый ответчик