Как скрыть текстовую клавиатуру, когда нажата кнопка "Готово/Возврат" Xcode 4.2

Я создал текстовое поле в построителе интерфейса. Я установил для него "Return Key" (Готово). Это однострочный вход (поэтому ему не нужно несколько строк).

Как скрыть виртуальную клавиатуру, когда пользователь нажал кнопку "Готово"?

Ответ 1

Внедрите метод делегата UITextFieldDelegate, затем:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.yourIBtextField.delegate = self;
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return NO;
}

Ответ 2

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

Даже тогда, если вы хотите это сделать, реализуйте метод textView: shouldChangeTextInRange: replacementText: метод UITextViewDelegate и в этом случае проверьте, есть ли сменный текст \n, скройте клавиатуру.

Могут быть другие способы, но я ничего не знаю.

Убедитесь, что вы объявили о поддержке протокола UITextViewDelegate.

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
replacementText:(NSString *)text {

    if([text isEqualToString:@"\n"]) {
        [textView resignFirstResponder];
        return NO;
    }
    return YES;
}

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

Ответ 3

Сделайте категорию на UIViewController со следующим методом

- (void)hideKeyboard
{
    [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder)
                                               to:nil
                                             from:nil
                                         forEvent:nil];
}