Potrzebuję, aby tekst pola tekstowego został wybrany zaraz po wyświetleniu elementu UIAlertController. Jednak sposób, w jaki wybieram tekst w standardowym UITextField nie działa tutaj.Zaznaczanie tekstu w polu tekstowym UIAlertController
Oto, co próbowałem, ale nie mogę tego zrobić.
let ac = UIAlertController(title: "Rename", message: nil, preferredStyle: .Alert)
ac.addTextFieldWithConfigurationHandler({
[] (textField: UITextField) in
textField.selectedTextRange = textField.textRangeFromPosition(textField.beginningOfDocument, toPosition: textField.endOfDocument)
textField.text = "filename.dat"
})
ac.addAction(UIAlertAction(title: "CANCEL", style: .Cancel, handler: nil))
ac.addAction(UIAlertAction(title: "OK", style: .Default, handler: {
[] Void in
// do something
}))
dispatch_async(dispatch_get_main_queue(), {
self.presentViewController(ac, animated: true, completion: nil)
})
Wszelkie pomysły?
Zauważyłem, że pominięto 'textField.becomeFirstResponder()' z Odpowiedź @ ridvankucuk. Czy są sytuacje, w których linia ta powinna zostać ponownie dodana? – ToolmakerSteve
@ToolmakerSteve, osobiście, nigdy nie spotkałem się z takimi sytuacjami. Pole tekstowe jest już pierwszą odpowiedzią, gdy wywoływana jest metoda 'textFieldDidBeginEditing:'. Ale może być jakiś szczególny przypadek, kiedy musisz zrobić to ponownie jako pierwszy. – seelts