IPad отклоняет клавиатуру, не зная, какое Textfield ее открыло
-
11-10-2019 - |
Вопрос
Есть ли способ сделать общий resignFirstResponder
Чтобы скрыть клавиатуру, независимо от того, какое текстовое поле/представление/и т. Д. Называет ее?
Причина в том, что у меня много текстовых полей, и я не хочу resignFirstResponder
Для всех текстовых полей, чтобы скрыть клавиатуру. Просто хочу общего
[self resignFirstResponder]
.
Любые идеи?
заранее спасибо
Решение
Самый простой способ сделать это - иметь метод, когда вы хотите отклонить клавиатуру, которая выглядит так:
-(void)dismissKeyboard {
[firstField becomeFirstResponder];
[firstField resignFirstResponder];
}
Другие советы
Я знаю, что это уже было отмечено как ответное, но для тех, кто сталкивается с этим, как я это сделал, вы можете просто использовать следующий метод в представлении, который содержит текстовые полки.
- (BOOL)endEditing:(BOOL)force
Этот метод рассматривает текущее представление и его иерархию подвесила для текстового поля, которое в настоящее время является первым респондентом. Если он находит один, он просит это текстовое поле уйти в отставку в качестве первого респондента. Если параметр силы устанавливается на да, текстовое поле никогда не спрашивается; Он вынужден уйти в отставку. Uiview документация
[self.view endEditing:YES];
Он будет скрывать клавиатуру, когда мы нажимаем на просмотр.
Вы можете отклонить клавиатуру без какой -либо ссылки на Uitextfield / UitextView с помощью кода ниже:
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
Это отклонит клавиатуру по всему миру без ссылки.
Надеюсь, что это поможет вам.
Вы можете проверить эти вопросы:
- Можно ли сделать клавиатуру iPhone невидимым / удалить ее без ухода в отставку первого ответчика?
- Скрыть клавиатуру ввода на iPhone, не зная первого респондента?
Таким образом: вы можете позвонить Firstresponder на что -то другое, которое вы выберете. Это может быть uiviewcontroller или uiview. Раньше у меня была похожая проблема, мне нужно было заставить мою клавиатуру уйти, когда я отодвигал контроллер моего представления к его абоненту, не зная, какое Textfield было первым респондентом. Затем, на просмотре моего контроллера представления, который я возвращался, я позвонил [Self StuderStroponder], и клавиатура просачиваемого представления исчезла. Потому что это сделало любое текстовое поле, что было свободным, будучи первым респондентом
В моем собственном приложении, когда у меня было более одного текстового поля, и я хотел бы заставить клавиатуру уйти, независимо resignFirstResponder
.
Я предполагаю, что, как программист, у вас должно быть четкое знание, сколько текстовых полей находится на вашем контроллере зрения и как вы можете получить к ним доступ, в противном случае это будет испорчено, и вы приложение не будет хорошо выглядеть ... :-