Desidero visualizzare un messaggio di avviso e sto utilizzando iOS SDK 8.1 con XCode 6.1. So che UIAlertView è deprecato; tuttavia, la mia app deve supportare anche iOS 7 e devo usare UIAlertView se l'app è in esecuzione su un dispositivo iOS 7. Questa vista di avviso ha un campo di testo e due pulsanti in cui uno di questi è il pulsante di annullamento predefinito. L'altro pulsante dovrebbe essere disabilitato finché il campo di testo è vuoto.alertViewShouldEnableFirstOther Il metodo del delegato del pulsante non viene chiamato
Ecco il mio codice:
class MyViewController : UIViewController, UIAlertViewDelegate {
var addRecipientAlertView:UIAlertView?
// Irrelevant code here
func performSomething(someValue:String) {
addRecipientAlertView = UIAlertView(title: "Title", message: "Enter full name of user, email of user or a free-form text", delegate: self, cancelButtonTitle: "Cancel", otherButtonTitles: "Add Recipient")
addRecipientAlertView!.alertViewStyle = UIAlertViewStyle.PlainTextInput
addRecipientAlertView!.accessibilityValue = someValue
// Text Field Settings
let textField:UITextField = addRecipientAlertView!.textFieldAtIndex(0)!
textField.placeholder = "Full Name, Email or Any Text"
textField.keyboardType = UIKeyboardType.EmailAddress
textField.clearButtonMode = UITextFieldViewMode.Always
addRecipientAlertView!.show()
}
}
func alertViewShouldEnableFirstOtherButton(alertView: UIAlertView) -> Bool {
return false
}
Il problema è; qualunque cosa abbia provato, il primo altro pulsante non è stato disabilitato comunque. Alla fine ho rinunciato a cercare di controllare il testo del mio campo di testo e ho implementato il metodo di avviso alertShouldEnableFirstOtherButton in modo tale che restituisca sempre false. Tuttavia, il risultato non è cambiato e entrambi i pulsanti (denominati "Annulla" e "Aggiungi destinatario" in questo esempio) sono ancora abilitati. Cosa mi manca?