2017-06-21 45 views
0

我在UIWebview中有一个文本框。按完成按钮时,键盘不会隐藏,并继续在视图上显示。我想在完成按钮按下时关闭键盘。有没有办法在我的swift代码中完成按钮操作?如何从Webview的键盘完成按钮操作

任何帮助将不胜感激。

+0

看到这个https://stackoverflow.com/questions/20321110/uiwebview-keyboard-return-key-pressed-ios-7 –

+0

仍不工作 – Jan

+0

你可以分享屏幕截图,你可以在网页视图中创建文本框 –

回答

2

通过在UIWebview里面的textfield,我把它作为UITextField作为UIWebview里面的子视图吧? 在就是你只需要实现你们班UITextFieldDelegate的情况下,特别是此委托方法textFieldShouldReturn,每当完成按钮被点击它被调用,所以基本上你会是这样的:

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
     if (textField == correctTextField) { 
      textField.resignFirstResponder() 
     } 
     return true 
    } 

明显你将需要分配该控制器作为textField代理首先

但据说它不是一个本地文本字段,而是一个html或某种webcontent的一部分,那么我会做什么,我会让它用一个特殊的方案调用请求,例如“hideKeyboard”,我会实现uiwebviewdelegate并测试该方案以隐藏密钥板每当我encouter吧,这里S IN的obj c。将为例:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request 
navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSURL *URL = [request URL]; 
    NSString *scheme = [URL scheme]; 
    if ([scheme isEqualToString:@"hideKeyboard"]) { 
     [self.view endEditing:true]; 
    } 
} 
+0

textfield不是原生的,它是从网页创建的。 – Jan

+0

没问题,更确切的说,那么问题就变成了done按钮在那个“网页”中调用了什么? –

+0

我只是想隐藏键盘时,按下返回按钮,在网页上不能做任何有关的事情。 – Jan

相关问题