У меня есть форма с текстовым полем на моем контроллере view. Когда пользователь прикасается к текстовому полю для добавления своего состояния, я показываю UIPicker для их выбора. Проблема в том, что клавиатура отображается в предыдущем текстовом поле, и я не могу ее уволить. Вот мой код:iOS Keyboard не увольняет
- (void) textFieldDidBeginEditing:(UITextField *)textField {
if (self.currentTextField) {
self.currentTextField = nil;
self.currentTextField = (KIP_TextField*)textField;
} else {
self.currentTextField = (KIP_TextField*)textField;
}
if (self.currentTextField.tag == 0 || self.currentTextField.tag == self.arrSearchFields.count-1) {
//kill the editing
[self.view endEditing:YES];
[self.currentTextField resignFirstResponder];
//set the picker type
if (self.currentTextField.tag == 0) {
self.currentPickerType = SUPPLIER_PICKER;
} else if (self.currentTextField.tag == self.arrSearchFields.count-1) {
self.currentPickerType = STATE_PICKER;
}
if (!self.hasPicker) {
[self addPicker];
} else {
[self closePicker:YES];
}
} else {
[self closePicker:NO];
}
}
Для тех, кто ответил resignFirstResponder: У меня есть, что и она работает, но мне нужно на клавиатуре, чтобы быть освобожден, когда я отображая сборщика. Таким образом, есть 3 текстовых поля, TF1, TF2, TF3, для TF1 и 2, прикосновение к ним запускает сборщик, когда пользователь выбирает строку выбора, текстовое поле заполняется этим значением, а сборщик отклоняется. Однако, если вы сначала перейдете в TF2, отобразится клавиатура, вы можете отклонить ее с помощью ключа возврата или texfieldDidEndEditing, который отклонит его. Но скажите, что вы не вводите текст, но касаетесь TF1 или 3, теперь отображается панель выбора, но клавиатура все еще находится на экране. Я не могу его уволить, даже с self.view endEditing
Если вы хотите проголосовать, по крайней мере, оставьте комментарий. – PruitIgoe
Это решило мою проблему: http: //stackoverflow.com/questions/22331963/hide-keyboard-in-objective-c – PruitIgoe