Как отклонить клавиатуру на UIWebView? - PullRequest
15 голосов
/ 01 апреля 2010

Я загружаю HTML-страницу, которая имеет форму. Я хотел бы иметь возможность отклонить клавиатуру, когда пользователь нажимает кнопку GO или он нажимает кнопку SUBMIT на странице HTML.

Если пользователь решит, что он не хочет заполнять форму, мне также нужен способ отклонить клавиатуру.

Не уверен, как это сделать.

Ответы [ 5 ]

34 голосов
/ 13 июля 2010

Более кратким способом, без необходимости знать, какой элемент выбран, является следующее:

[webView stringByEvaluatingJavaScriptFromString:@"document.activeElement.blur()"];
29 голосов
/ 14 июня 2012

Javascript подход умный, но это более прямой:

[webView endEditing:YES];
11 голосов
/ 03 апреля 2010

Вы можете использовать JavaScript, чтобы отвести фокус от текстового поля HTML, используя размытие:

document.foo.bar.myinput.blur();
1 голос
/ 29 августа 2018

UIGestureRecogniser поможет отклонить клавиатуру, когда пользователь нажимает на WebView. Вот фрагмент кода, который я использовал.

let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))
        tap.delegate = self 
        webView.addGestureRecognizer(tap)

@ objc func handleTap (_ отправитель: UITapGestureRecognizer) { WebView? .endEditing (правда) }

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
  return true
}

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

0 голосов
/ 02 апреля 2010

Я не очень знаком с UIWebView, но обычно вы бы отклонили свою клавиатуру так ...

[textField resignFirstResponder];

При этом клавиатура будет отклонена ...

Чтобы клавиатура была отклонена, когда пользователь нажимает кнопку возврата, вам нужно реализовать метод делегата.

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

Документация Apple содержит полный список методов для UITextFieldDelegate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...