Swift - Как остановить клавиатуру от закрытия при появлении предупреждения

У меня есть простое представление с текстовым полем, которое становится первым ответчиком при загрузке представления. Если пользователь вводит неправильный код, всплывает диалоговое окно с предупреждением «упс», и клавиатура закрывается, а при выборе параметра в диалоговом окне с предупреждением клавиатура появляется снова, в результате чего мой взгляд перемещается.

Есть ли способ остановить эту клавиатуру - когда-либо - увольнять? Я попытался использовать это, которое я нашел в другом месте:

override var disablesAutomaticKeyboardDismissal: Bool { return true }

однако это, похоже, не решает проблему. Может ли кто-нибудь дать мне голову? :) Спасибо!


520
1

Ответ:

Решено

исправлено с помощью следующего решения, измененного из этого ответа - https://stackoverflow.com/a/47068284/14815664

func displayError(message: String) {
    let controller = UIAlertController(title: "Oops!", message: message, preferredStyle: .alert)
    controller.addAction(UIAlertAction(title: "Dismiss", style: .default))
    
    guard let alertWindow = UIApplication.shared.windows.last,
          alertWindow.windowLevel == UIWindow.Level(rawValue: 10000001.0) else {
      navigationController.present(controller, animated: true, completion: nil)
      return
    }
    alertWindow.rootViewController?.present(controller, animated: true, completion: nil)
  }