Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 显示键盘时,WKWebView存在约束问题_Ios_Swift_Xcode_Wkwebview - Fatal编程技术网

Ios 显示键盘时,WKWebView存在约束问题

Ios 显示键盘时,WKWebView存在约束问题,ios,swift,xcode,wkwebview,Ios,Swift,Xcode,Wkwebview,当关注WKWebView中的输入字段时,当出现提示时,键盘无法工作,我想知道如何设置约束以避免此问题 页面正在加载中。页面上有一个输入字段。当我点击输入字段时,键盘弹出,但该字段上的焦点不再设置,无法输入任何内容。xcode提供以下错误日志: override func viewDidLoad() { super.viewDidLoad() setupWebView() } func webView(_ webView: WKWebView, didFinish navigation:

当关注WKWebView中的输入字段时,当出现提示时,键盘无法工作,我想知道如何设置约束以避免此问题

页面正在加载中。页面上有一个输入字段。当我点击输入字段时,键盘弹出,但该字段上的焦点不再设置,无法输入任何内容。xcode提供以下错误日志:

override func viewDidLoad() {
  super.viewDidLoad()
  setupWebView()
}

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
  self.showWebView()
}

func showWebView() {
        webView.frame = view.frame
        webView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(webView)

view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[webView]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["webView":webView]))
        view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-20-[webView]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["webView":webView]))

    }

    func setupWebView() {
        let webConfiguration = WKWebViewConfiguration()

        webView = WKWebView(frame:.zero, configuration: webConfiguration)
        webView.uiDelegate = self
        webView?.navigationDelegate = self

        //Disable scroll of WebView
        webView.scrollView.bounces = false

        webView.translatesAutoresizingMaskIntoConstraints = false

        let url = URL(string: self.url)
        let request = URLRequest(url: url!)
        print(request)
        webView.load(request)
    }
错误日志:

2019-02-11 15:53:46.940718+0100 AppName[9824:4549339] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles

2019-02-11 15:53:46.943297+0100 AppName[9824:4549339] [MC] Reading from public effective user settings.

2019-02-11 15:53:47.085142+0100 AppName[9824:4549339] API error: <_UIKBCompatInputView: 0x113d03880; frame = (0 0; 0 0); layer = <CALayer: 0x28017c800>> returned 0 width, assuming UIViewNoIntrinsicMetric

2019-02-11 15:53:47.085268+0100 AppName[9824:4549339] API error: <_UIKBCompatInputView: 0x113d03880; frame = (0 0; 0 0); layer = <CALayer: 0x28017c800>> returned 0 width, assuming UIViewNoIntrinsicMetric
2019-02-11 15:53:47.123997+0100 AppName[9824:4549339] [LayoutConstraints] Unable to simultaneously satisfy constraints.
  Probably at least one of the constraints in the following list is one you don't want. 
  Try this: 
    (1) look at each constraint and try to figure out which you don't expect; 
    (2) find the code that added the unwanted constraint or constraints and fix it. 
  (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x282275ae0 h=-&- v=-&- _UIToolbarContentView:0x113d3d9e0.width == UIToolbar:0x113d3d5a0.width   (active)>",
    "<NSLayoutConstraint:0x282262bc0 H:|-(0)-[_UIButtonBarStackView:0x113d3f970]   (active, names: '|':_UIToolbarContentView:0x113d3d9e0 )>",
    "<NSLayoutConstraint:0x2822637a0 _UIButtonBarStackView:0x113d3f970.trailing == _UIToolbarContentView:0x113d3d9e0.trailing   (active)>",
    "<NSLayoutConstraint:0x282273cf0 H:|-(16)-[_UIModernBarButton:0x113d54b00]   (active, names: '|':_UIButtonBarButton:0x113d546b0 )>",
    "<NSLayoutConstraint:0x282273d40 H:[_UIModernBarButton:0x113d54b00]-(>=8)-|   (active, names: '|':_UIButtonBarButton:0x113d546b0 )>",
    "<NSLayoutConstraint:0x282278320 H:|-(>=5)-[_UIModernBarButton:0x113d56e30]   (active, names: '|':_UIButtonBarButton:0x113d567e0 )>",
    "<NSLayoutConstraint:0x282278370 H:[_UIModernBarButton:0x113d56e30]-(>=5)-|   (active, names: '|':_UIButtonBarButton:0x113d567e0 )>",
    "<NSLayoutConstraint:0x282278dc0 H:|-(8)-[_UIModernBarButton:0x113d57ee0'Done']   (active, names: '|':_UIButtonBarButton:0x113d57350 )>",
    "<NSLayoutConstraint:0x282278e10 H:[_UIModernBarButton:0x113d57ee0'Done']-(16)-|   (active, names: '|':_UIButtonBarButton:0x113d57350 )>",
    "<NSLayoutConstraint:0x282275090 'UISV-canvas-connection' UILayoutGuide:0x2838457a0'UIViewLayoutMarginsGuide'.leading == _UIButtonBarButton:0x113d546b0.leading   (active)>",
    "<NSLayoutConstraint:0x2822750e0 'UISV-canvas-connection' UILayoutGuide:0x2838457a0'UIViewLayoutMarginsGuide'.trailing == _UIButtonBarButton:0x113d57350.trailing   (active)>",
    "<NSLayoutConstraint:0x282275130 'UISV-spacing' H:[_UIButtonBarButton:0x113d546b0]-(0)-[UIView:0x113d56600]   (active)>",
    "<NSLayoutConstraint:0x282275180 'UISV-spacing' H:[UIView:0x113d56600]-(0)-[_UIButtonBarButton:0x113d567e0]   (active)>",
    "<NSLayoutConstraint:0x2822751d0 'UISV-spacing' H:[_UIButtonBarButton:0x113d567e0]-(0)-[UIView:0x113d57170]   (active)>",
    "<NSLayoutConstraint:0x282275220 'UISV-spacing' H:[UIView:0x113d57170]-(0)-[_UIButtonBarButton:0x113d57350]   (active)>",
    "<NSLayoutConstraint:0x282275c70 'UIView-Encapsulated-Layout-Width' UIToolbar:0x113d3d5a0.width == 0   (active)>",
    "<NSLayoutConstraint:0x2822699f0 'UIView-leftMargin-guide-constraint' H:|-(0)-[UILayoutGuide:0x2838457a0'UIViewLayoutMarginsGuide'](LTR)   (active, names: '|':_UIButtonBarStackView:0x113d3f970 )>",
    "<NSLayoutConstraint:0x282269a90 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x2838457a0'UIViewLayoutMarginsGuide']-(0)-|(LTR)   (active, names: '|':_UIButtonBarStackView:0x113d3f970 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x282273d40 H:[_UIModernBarButton:0x113d54b00]-(>=8)-|   (active, names: '|':_UIButtonBarButton:0x113d546b0 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.



2019-02-11 15:53:47.134917+0100 AppName[9824:4549339] [LayoutConstraints] Unable to simultaneously satisfy constraints.
  Probably at least one of the constraints in the following list is one you don't want. 
  Try this: 
    (1) look at each constraint and try to figure out which you don't expect; 
    (2) find the code that added the unwanted constraint or constraints and fix it. 
  (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x282275ae0 h=-&- v=-&- _UIToolbarContentView:0x113d3d9e0.width == UIToolbar:0x113d3d5a0.width   (active)>",
    "<NSLayoutConstraint:0x282262bc0 H:|-(0)-[_UIButtonBarStackView:0x113d3f970]   (active, names: '|':_UIToolbarContentView:0x113d3d9e0 )>",
    "<NSLayoutConstraint:0x2822637a0 _UIButtonBarStackView:0x113d3f970.trailing == _UIToolbarContentView:0x113d3d9e0.trailing   (active)>",
    "<NSLayoutConstraint:0x282278320 H:|-(>=5)-[_UIModernBarButton:0x113d56e30]   (active, names: '|':_UIButtonBarButton:0x113d567e0 )>",
    "<NSLayoutConstraint:0x282278370 H:[_UIModernBarButton:0x113d56e30]-(>=5)-|   (active, names: '|':_UIButtonBarButton:0x113d567e0 )>",
    "<NSLayoutConstraint:0x282278dc0 H:|-(8)-[_UIModernBarButton:0x113d57ee0'Done']   (active, names: '|':_UIButtonBarButton:0x113d57350 )>",
    "<NSLayoutConstraint:0x282278e10 H:[_UIModernBarButton:0x113d57ee0'Done']-(16)-|   (active, names: '|':_UIButtonBarButton:0x113d57350 )>",
    "<NSLayoutConstraint:0x282275090 'UISV-canvas-connection' UILayoutGuide:0x2838457a0'UIViewLayoutMarginsGuide'.leading == _UIButtonBarButton:0x113d546b0.leading   (active)>",
    "<NSLayoutConstraint:0x2822750e0 'UISV-canvas-connection' UILayoutGuide:0x2838457a0'UIViewLayoutMarginsGuide'.trailing == _UIButtonBarButton:0x113d57350.trailing   (active)>",
    "<NSLayoutConstraint:0x282275130 'UISV-spacing' H:[_UIButtonBarButton:0x113d546b0]-(0)-[UIView:0x113d56600]   (active)>",
    "<NSLayoutConstraint:0x282275180 'UISV-spacing' H:[UIView:0x113d56600]-(0)-[_UIButtonBarButton:0x113d567e0]   (active)>",
    "<NSLayoutConstraint:0x2822751d0 'UISV-spacing' H:[_UIButtonBarButton:0x113d567e0]-(0)-[UIView:0x113d57170]   (active)>",
    "<NSLayoutConstraint:0x282275220 'UISV-spacing' H:[UIView:0x113d57170]-(0)-[_UIButtonBarButton:0x113d57350]   (active)>",
    "<NSLayoutConstraint:0x282275c70 'UIView-Encapsulated-Layout-Width' UIToolbar:0x113d3d5a0.width == 0   (active)>",
    "<NSLayoutConstraint:0x2822699f0 'UIView-leftMargin-guide-constraint' H:|-(0)-[UILayoutGuide:0x2838457a0'UIViewLayoutMarginsGuide'](LTR)   (active, names: '|':_UIButtonBarStackView:0x113d3f970 )>",
    "<NSLayoutConstraint:0x282269a90 'UIView-rightMargin-guide-constraint' H:[UILayoutGuide:0x2838457a0'UIViewLayoutMarginsGuide']-(0)-|(LTR)   (active, names: '|':_UIButtonBarStackView:0x113d3f970 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x282278370 H:[_UIModernBarButton:0x113d56e30]-(>=5)-|   (active, names: '|':_UIButtonBarButton:0x113d567e0 )>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
2019-02-11 15:53:46.940718+0100 AppName[9824:4549339][MC]systemgroup.com.apple.configurationprofiles的系统组容器路径为/private/var/containers/Shared/systemgroup/systemgroup.com.apple.configurationprofiles
2019-02-11 15:53:46.943297+0100 AppName[9824:4549339][MC]正在从公共有效用户设置读取。
2019-02-11 15:53:47.085142+0100 AppName[9824:4549339]API错误:返回0宽度,假设UIViewNoInntrisicMetric
2019-02-11 15:53:47.085268+0100 AppName[9824:4549339]API错误:返回0宽度,假设UIViewNoInntrisicMetric
2019-02-11 15:53:47.123997+0100 AppName[9824:4549339][LayoutConstraints]无法同时满足约束。
可能下面列表中至少有一个约束是您不想要的。
试试这个:
(1) 看看每一个约束,试着找出你不期望的;
(2) 找到添加了不需要的约束的代码,然后修复它。
(注意:如果您看到不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性TranslatesAutoResizingMaskToConstraints的文档)
(
"",
"",
"",
"",
“=8)-|(活动,名称:‘|’:UIButtonBarButton:0x113d546b0)>”,
“=5”-[_UIModernBarButton:0x113d56e30](活动,名称:‘|’:_UIButtonBarButton:0x113d567e0)>”,
“=5)-|(活动,名称:‘|’:UIButtonBarButton:0x113d567e0)>”,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
)
将尝试通过打破约束进行恢复
=8)-|(活动,名称:‘|’:_UIButtonBarButton:0x113d546b0)>
在UIViewAlertForUnsatifiableConstraints处创建一个符号断点,以便在调试器中捕获该断点。
中列出的UIView上UIConstraintBasedLayoutDebugging类别中的方法也可能会有所帮助。
2019-02-11 15:53:47.134917+0100 AppName[9824:4549339][LayoutConstraints]无法同时满足约束。
可能下面列表中至少有一个约束是您不想要的。
试试这个:
(1) 看看每一个约束,试着找出你不期望的;
(2) 找到添加了不需要的约束的代码,然后修复它。
(注意:如果您看到不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性TranslatesAutoResizingMaskToConstraints的文档)
(
"",
"",
"",
“=5”-[_UIModernBarButton:0x113d56e30](活动,名称:‘|’:_UIButtonBarButton:0x113d567e0)>”,
“=5)-|(活动,名称:‘|’:UIButtonBarButton:0x113d567e0)>”,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
)
将尝试通过打破约束进行恢复
=5)-|(活动,名称:'|':_UIButtonBarButton:0x113d567e0)>
在UIViewAlertForUnsatifiableConstraints处创建一个符号断点,以便在调试器中捕获该断点。
中列出的UIView上UIConstraintBasedLayoutDebugging类别中的方法也可能会有所帮助。

我已经花了几个小时在这上面,但没有任何成功的结果。我读过多篇类似的文章,但都没有好的答案。我的应用程序运行得很好,但突然间,这个问题不知从何而来。我很乐意得到一些指导

如果不看故事板,就很难判断您的约束有什么问题。有时,如果您清除所有约束并再次添加它们,考虑哪个元素需要坚持什么,这会有所帮助。更改“视图为…”以查看情节提要中不同屏幕大小的视图有助于直观地显示出错误的位置。

如果不查看情节提要,很难判断约束的错误。有时,如果您清除所有约束并再次添加它们,考虑哪个元素需要坚持什么,这会有所帮助。将“视图更改为…”以在故事板中的不同屏幕大小上查看视图,有助于直观地显示错误所在。

我也有同样的问题。我只是在我的故事板中只有一个wkwebview,并且设置了与superview boarder相同的顶部、左侧、底部和右侧约束。我面临着同样的问题。约束设置正确,但当工具栏从输入字段中出现时,仍然会出现约束错误。我也有同样的问题。我只是在我的故事板中只有一个wkwebview,并且设置了与superview boarder相同的顶部、左侧、底部和右侧约束。我面临着同样的问题。约束设置正确,但在输入字段中显示工具栏时仍会出现约束错误。