Готово ключ в приложении iPhone, который закрывает клавиатуру (с UITextView)

Я работаю над iPhone-приложением, а в iPhone-приложении пользователь вводит UITextView. Мне было интересно, как я могу добавить готовый ключ на клавиатуре вместо обычного ключа возврата, и когда вы нажимаете на эту клавишу, клавиатура закрывается.

Спасибо!

Ответы

Ответ 1

В протоколе UITextViewDelegate нет метода -textViewShouldReturn:. Если вы хотите, чтобы клавиша return (done) отклонила клавиатуру, лучше всего использовать UITextField, UITextView предназначен для редактирования нескольких строк текста (так что вам нужен способ ввода строки).

Если вы действительно хотите убрать клавиатуру при нажатии клавиши возврата в UITextView, возможно, вы можете сделать что-то вроде этого:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
  if ([text isEqual:@"\n"]) {
    [textView resignFirstResponder];
    return NO;
  }
  return YES;
}

Ответ 2

Это просто:

textField.returnKeyType=UIReturnKeyDone;

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

- (BOOL)textFieldShouldReturn:(UITextField *)aTextfield {
    [aTextfield resignFirstResponder];
    return YES;
}

Ответ 3

В дополнение к настройке:

textField.returnKeyType = UIReturnKeyDone;

вам нужно установить делегат текстового поля в свой класс и сделать что-то вроде этого:

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

    return YES;
}

Этот параметр returnKeyType также может быть выполнен из Interface Builder - если у вас есть пользовательский интерфейс, определенный в XIB. С другой стороны, -resignFirstResponder будет следить за тем, чтобы клавиатура исчезла. Это должно быть сделано в методе -textFieldShouldReturn: delegate, поскольку это вызывается, когда пользователь нажимает кнопку "Готово".

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