Требуется посмотреть, есть ли способ отобразить представление предупреждения после снятия скриншота, а затем потребовать ввода текста, который соответствует определенной строке. Если пользователь не вводит нужный текст, представление предупреждения не отменяется, и пользователю предлагается повторить попытку. Если пользователь вводит правильный текст, представление предупреждения отклоняется.Показать предупреждение при снятии снимка экрана и потребовать ввода текста
0
A
ответ
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)
})
Работает отлично! Благодарю. По какой-то причине панель навигации скользит из представления. Любой способ сделать это без скольжения? – Miles
если вы хотите сохранить навигационную панель. вы можете изменить последнюю строку на «navigationController ?.pushViewController» –
Кажется, что не работает, поскольку весь вид попадает в новый контроллер представления с пустым экраном и клавиатурой. Это: «self.navigationController? .pushViewController (textPrompt, animated: false)» – Miles