2016-12-26 3 views
0

Требуется посмотреть, есть ли способ отобразить представление предупреждения после снятия скриншота, а затем потребовать ввода текста, который соответствует определенной строке. Если пользователь не вводит нужный текст, представление предупреждения не отменяется, и пользователю предлагается повторить попытку. Если пользователь вводит правильный текст, представление предупреждения отклоняется.Показать предупреждение при снятии снимка экрана и потребовать ввода текста

ответ

2

Вы можете использовать этот

let requireTextInput = "require text input" 
// add observer for screen shot  
NotificationCenter.default.addObserver(forName: NSNotification.Name.UIApplicationUserDidTakeScreenshot, object: nil, queue: OperationQueue.main, using: 
     { notification in 

      var inputTextField = UITextField() 

      let textPrompt = UIAlertController(title: nil, message: "require text input", preferredStyle: .alert) 

      textPrompt.addAction(UIAlertAction(title: "Cancel", style: .default, handler: nil)) 

      textPrompt.addAction(UIAlertAction(title: "OK", style: .default, handler: { 
       (action) -> Void in 
      // if the input match the required text 

       let str = inputTextField.text 
       if str == requireTextInput { 
        print("right") 
       } else { 
        print("wrong") 
       } 

      })) 

      textPrompt.addTextField(configurationHandler: {(textField: UITextField!) in 
       textField.placeholder = "place Holder" 
       inputTextField = textField 

      }) 

      self.present(textPrompt, animated: true, completion: nil) 

    }) 
+0

Работает отлично! Благодарю. По какой-то причине панель навигации скользит из представления. Любой способ сделать это без скольжения? – Miles

+0

если вы хотите сохранить навигационную панель. вы можете изменить последнюю строку на «navigationController ?.pushViewController» –

+0

Кажется, что не работает, поскольку весь вид попадает в новый контроллер представления с пустым экраном и клавиатурой. Это: «self.navigationController? .pushViewController (textPrompt, animated: false)» – Miles