2012-03-23 22 views
5

मेरा UIWebView एक संतोषजनक HTML सामग्री लोड करता है। मैं UIWebView को ध्यान केंद्रित करना चाहता हूं और UIWebView में कीबोर्ड दिखा सकता हूं।contenteditable UIWebView प्रोग्रामेटिक रूप से कीबोर्ड दिखाएं

मैं [self.webview becomeFirstResponder] का उपयोग करता हूं, लेकिन यह काम नहीं करता है। क्या विधि के आसपास कोई काम है?

धन्यवाद।

उत्तर

1

UIwebview संपादन योग्य नहीं है और आप इसे पहले उत्तरदाता नहीं बना सकते हैं। कहाँ के रूप में आप उस उद्देश्य के लिए javascripts उपयोग कर सकते हैं, इस सवाल का जवाब

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

+0

धन्यवाद, मैंने जावास्क्रिप्ट का उपयोग कर एचटीएमएल सामग्री को संपादन योग्य रूप से सेट कर दिया है। लेकिन मैं UIWebView को ध्यान केंद्रित नहीं कर सकता। और आपके द्वारा प्रदान किया गया लिंक UIWebView में पहले प्रतिक्रियाकर्ता बनने का कोई जवाब नहीं है। क्या आप मुझे इसके बारे में कुछ नमूना कोड दे सकते हैं? – tangqiaoboy

+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]; –

1

आप विंडो ऑब्जेक्ट में सेट की जरूरत है "दर्शनीय लॉन्च पर" चेकबॉक्स की कोशिश - कुंजीपटल इनपुट क्षेत्र पर automaticaly दिखाएगा

8

यह वह जगह है आईओएस 6 में अब संभव है। UIWebView में बूलियन कीबोर्ड डिस्प्लेआरक्वर्स यूज़र एक्शन देखें। एक बार सेट करने के बाद आप कर्सर सेट करने के लिए फोकस() का उपयोग कर सकते हैं।

+0

यह इसे फोकस में रखता है, लेकिन वास्तव में कीबोर्ड को नहीं लाता है। – scord

+0

इसे सेट करने के लिए कर्सर सेट करना और कर्सर को जावास्क्रिप्ट में लाना संभव बनाता है। आप तत्व पर। फ़ोकस() सेट कर सकते हैं और कीबोर्ड दिखाई देगा। हालांकि WkWebView के लिए ऐसा कोई भी विकल्प मौजूद नहीं है। – eliajf

2

आईओएस 6> आपको 1 की आवश्यकता है) कीबोर्ड पर अपना वेबव्यू सेट करें DisplayRequiresUserAction = 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') का उपयोग कर सकते() ध्यान केंद्रित एक विकल्प के रूप। मैंने टेक्स्टफिल्ड को प्रतिनिधि के रूप में सेट किया है और प्रतिनिधि विधि टेक्स्ट फ़ील्डशल्डरेटर्न का उपयोग किया है जो रिटर्न कुंजी दबाए जाने पर आग लगती है।

संबंधित मुद्दे