Mam UIAlertController
(Styl alertu) w Swift i wszystko działa dobrze. Jednak dodany do niego UITextField
jest opcjonalnym polem, do którego użytkownik nie musi wprowadzać tekstu. Problem polega na tym, że kiedy pokazuję tę UIAlertController
, klawiatura pojawia się jednocześnie z domyślnie wybranym polem tekstowym. Nie chcę, aby klawiatura pojawiała się, chyba że użytkownik dotknie UITextField
. Jak to zrobić?Zapobieganie automatycznemu pojawianiu się klawiatury za pomocą UIAlertController
let popup = UIAlertController(title: "My title",
message: "My message",
preferredStyle: .Alert)
popup.addTextFieldWithConfigurationHandler { (optionalTextField) -> Void in
optionalTextField.placeholder = "This is optional"
}
let submitAction = UIAlertAction(title: "Submit", style: .Cancel) { (action) -> Void in
let optionalTextField = popup.textFields![0]
let text = optionalTextField.text
print(text)
}
let cancelAction = UIAlertAction(title: "Cancel", style: .Default, handler: nil)
popup.addAction(cancelAction)
popup.addAction(submitAction)
self.presentViewController(popup, animated: true, completion: nil)
trzeba być co becomeFirstResponder zadzwonić gdzieś indziej. Możesz też wywołać self.view, endEdytując: TAK po/przed wyświetleniem alertu. –