代码之家  ›  专栏  ›  技术社区  ›  GarySabo

WatchOS警告:从层次结构中删除时拒绝了resignFirstResponder

  •  6
  • GarySabo  · 技术社区  · 7 年前

    我在Xcode中遇到此错误。

    2018-02-26 07:13:22.326888-0500 Watch Extension[1298:2691330] [View] First responder warning: '<SPInterfacePicker: 0x14dc1740; frame = (76 0; 58 44); gestureRecognizers = <NSArray: 0x14dcd8a0>; layer = <CALayer: 0x14dc1910>>' rejected resignFirstResponder when being removed from hierarchy

    我的InterfaceController有4个 WkInterfacePicker 看起来这个错误可能与显示警报有关(当用户保存数据时),但我不确定。

    还有人见过这个吗?

    我的代码:

    if successSaving == true {
        DispatchQueue.main.async {
            WKInterfaceDevice.current().play(.success)
            self.showSuccessAlertWith(message: "Workout Saved, Stats Added.")
        }
    
        func showSuccessAlertWith(message: String){
    
            let action1 = WKAlertAction(title: "OK", style: .default) {
                WKInterfaceController.reloadRootPageControllers(withNames: ["InterfaceController"],
                                                                                contexts: nil,
                                                                                orientation: .vertical,
                                                                                pageIndex: 0)
            }
            presentAlert(withTitle: "Success", message: message, preferredStyle: .alert, actions: [action1])
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   GarySabo    7 年前

    我想现在发生的是 WKInterfacePicker s很容易意外地处于“仍在编辑”状态,换句话说,如果您滚动浏览这些值,然后点击“完成”按钮(调用 reloadRootPageControllers )系统认为用户仍在编辑选择器的值。

    我可以要求用户更加小心(不太可能)。。。但我不确定如何解决iOS中的等效调用 resignFirstResponder. 也不 resignFocus nor设置 isActive 若为false,根据我的测试,请阻止记录此消息。

    推荐文章