Как отклонить клавиатуру для UITextView с клавишей возврата? - PullRequest
370 голосов
/ 01 апреля 2009

В библиотеке IB введение говорит нам, что при нажатии клавиши return клавиатура для UITextView исчезнет. Но на самом деле ключ return может действовать только как '\ n'.

Я могу добавить кнопку и использовать [txtView resignFirstResponder], чтобы скрыть клавиатуру.

Но есть ли способ добавить действие для клавиши return на клавиатуре, чтобы мне не нужно было добавлять UIButton?

Ответы [ 33 ]

0 голосов
/ 02 ноября 2014

функция для скрытия Queboard.

- (void)HideQueyboard
{
    [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder)   to:nil from:nil forEvent:nil];
}
0 голосов
/ 25 февраля 2019

Вы должны добавить UIToolbar в начало UITextView, чтобы сделать его проще, чем shouldChangeTextIn

In Swift 4

let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 50))
        toolbar.barStyle = .default
        toolbar.items = [
            UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil),
            UIBarButtonItem(title: "Done", style: .done, target: self, action: #selector(doneAction))
        ]
        textView.inputAccessoryView = toolbar
@objc func doneAction(){
 self.textView.resignFirstResponder()
}
0 голосов
/ 14 октября 2013

Я знаю, что это не точный ответ на этот вопрос, но я нашел эту ветку после поиска в интернете ответа. Я предполагаю, что другие разделяют это чувство.

Это мое отличие UITapGestureRecognizer, которое я считаю надежным и простым в использовании - просто установите делегат TextView на ViewController.

Вместо ViewDidLoad я добавляю UITapGestureRecognizer, когда TextView становится активным для редактирования:

-(void)textViewDidBeginEditing:(UITextView *)textView{
    _tapRec = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)];

    [self.view addGestureRecognizer: _tapRec];
    NSLog(@"TextView Did begin");
}

Когда я нажимаю вне TextView, представление завершает режим редактирования, и UITapGestureRecognizer удаляет себя, чтобы я мог продолжить взаимодействие с другими элементами управления в представлении.

-(void)tap:(UITapGestureRecognizer *)tapRec{
    [[self view] endEditing: YES];
    [self.view removeGestureRecognizer:tapRec];
    NSLog(@"Tap recognized, tapRec getting removed");
}

Надеюсь, это поможет. Это кажется очевидным, но я никогда не видел такого решения в Интернете - я что-то не так делаю?

...