Как скрыть клавиатуру по умолчанию - PullRequest
3 голосов
/ 16 марта 2009

У меня есть 5 полей UITextFields, добавленных в форму. Один из текстовых файлов предназначен для ввода даты рождения. Поэтому при касании этого конкретного текстового поля вместо отображения клавиатуры по умолчанию необходимо отобразить средство выбора даты.

Я попробовал следующее:

- (void)textFieldDidBeginEditing:(UITextField *)textField{
   [textField resignFirstResponder];
   [self showDatePicker];//this is my own function to display datepicker.
}

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

Ответы [ 5 ]

3 голосов
/ 15 октября 2010

Хотя это старый вопрос, я пришел сюда, когда искал то же самое.

Это будет работать для любого числа / вложенности представлений, представленных на экране,

- (void) hideKeyboard: (UIView *) view {
    NSArray *subviews = [view subviews];
    for (UIView *subview in subviews){
        if ([subview isKindOfClass:[UITextField class]]) {
            [subview resignFirstResponder];
        }
        [self hideKeyboard: subview ];
    }
}

Позже я нашел более интуитивный способ сделать это,

[self.view endEditing:YES];
2 голосов
/ 11 ноября 2009

Вы можете справиться с этим в -textFieldShouldBeginEditing:.

Если этот метод возвращает NO, клавиатура не будет отображаться.

Просто покажите средство выбора даты в этом методе и затем верните НЕТ.

1 голос
/ 04 марта 2011

Я только что работал над этой же проблемой,

Мы попробовали несколько вещей и в результате получили много действительно ужасного кода и ошибок.

Самый простой вариант на данный момент - это иметь UITextField, но установить .inputView на DatePicker

Теперь мы пытаемся найти хороший способ отправки поля, так как у средства выбора нет кнопки возврата, как у клавиатуры.

1 голос
/ 16 марта 2009

Может быть, вам не следует использовать UITextField для этого. Используйте обычный UITableViewCell и нажмите новый UIViewController с датчиком при нажатии.

0 голосов
/ 16 марта 2009

Отставка первого респондента должна скрывать клавиатуру. Мое лучшее предположение заключается в том, что textField на самом деле не является первым респондентом на данном этапе кода, поэтому указание на отставку не имеет никакого эффекта. Возможно, вы должны вставить оператор NSLog, чтобы проверить это.

...