Предупреждение WatchOS: отклонено resignFirstResponder при удалении из иерархии
Я получаю эту ошибку в 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
s и кажется, что эта ошибка может быть связана с представлением предупреждения (когда пользователь сохраняет данные), но я не уверен.
Кто-нибудь еще видел это?
Мой код:
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 ответ
Я думаю, что происходит то, что WKInterfacePicker
Их очень легко случайно оставить в состоянии "все еще редактировать", другими словами, если вы прокрутите значения, затем нажмите кнопку "Готово" (которая вызывает reloadRootPageControllers
) система считает, что пользователь все еще находится в процессе редактирования значения средства выбора.
Я могу просто попросить пользователей быть более осторожными (маловероятно)... но я не уверен, как решить, что в iOS будет вызывать эквивалент resignFirstResponder.
ни resignFocus
ни настройка isActive
в false, в соответствии с моим тестированием, предотвратить запись этого сообщения.