2012-03-23 237 views

回答

1

UIwebview不可编辑,您无法使其成为第一响应者。 在哪里,你可以使用JavaScript的用于这一目的,试试这个答案

UIWebView with contentEditable (html editing), first responder handling?

+0

谢谢,我已经将html内容设置为使用javascript编辑。但我不能让UIWebView聚焦。你提供的链接没有答案成为UIWebView中的第一个响应者。你可以给我一些关于这个的示例代码吗? – tangqiaoboy 2012-03-23 09:03:27

+0

jScriptString = [NSString stringWithFormat:@“var field = document.activeElement;” “field.value ='%@';”,symbol.data]; [myWebView stringByEvaluatingJavaScriptFromString:jScriptString]; jScriptString = [NSString stringWithFormat:@“document.activeElement.form.submit();”]; [myWebView stringByEvaluatingJavaScriptFromString:jScriptString]; – 2012-03-23 10:04:11

1

需要设置为“可见在启动”复选框,在你的窗口对象 - 键盘机器会自动显示在输入字段

8

这是现在可以在iOS 6中使用。请参阅UIWebView中的布尔keyboardDisplayRequiresUserAction。一旦设置为NO,则可以使用focus()设置光标。

+0

这使它成为焦点,但实际上并没有提起键盘。 – scord 2017-02-07 18:42:30

+0

将其设置为NO可以设置光标并在Javascript中调出光标。您可以在元素上设置.focus(),键盘将会出现。但是,WkWebView不存在类似的选项。 – eliajf 2017-02-07 23:09:38

2

在iOS 6中,您需要1)将您的webview设置为keyboardDisplayRequiresUserAction = NO,以及2)调用焦点。代码如下:

self.webView.keyboardDisplayRequiresUserAction = NO; // put in viewDidLoad 

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
     [self.webView 
     stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].focus()"]; 
    return YES; 
} 

您可以使用document.getElementById('someId')。focus()作为替代。我将textField设置为委托,并使用委托方法textFieldShouldReturn,当按下返回键时触发。