2012-03-23 136 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,當按下返回鍵時觸發。