Ошибка подтверждения в -[UIAlertController addTextFieldWithConfigurationHandler:]
Вызов window.prompt
в JavaScript внутри WKWebView генерирует ошибку утверждения:
Ошибка подтверждения в -[UIAlertController addTextFieldWithConfigurationHandler:]
Ошибка подтверждения происходит от этой функции WKUIDelegate:
func webView(_ webView: WKWebView, runJavaScriptTextInputPanelWithPrompt prompt: String, defaultText: String?, initiatedByFrame frame: WKFrameInfo,
completionHandler: @escaping (String?) -> Void) {
let alertController = UIAlertController(title: nil, message: prompt, preferredStyle: .actionSheet)
alertController.addTextField { (textField) in
textField.text = defaultText
}
alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action) in
if let text = alertController.textFields?.first?.text {
completionHandler(text)
} else {
completionHandler(defaultText)
}
}))
alertController.addAction(UIAlertAction(title: "Cancel", style: .default, handler: { (action) in
completionHandler(nil)
}))
present(alertController, animated: true, completion: nil)
}
Документы класса не показывают способ добавления обработчика конфигурации при добавлении текстового поля или в инициализаторе. Так как ты должен справиться с этим?
2 ответа
Попробуйте сменить стиль actionSheet
в alert
, Для пользователя Objective-C, который будет меняться с UIAlertControllerStyleActionSheet
в UIAlertControllerStyleAlert
,
Подарок должен быть вызван из viewController. Есть подозрение, что это может быть с вами.