Chcę wyświetlić komunikat alertu i używam iOS SDK 8.1 z XCode 6.1. Wiem, że UIAlertView jest przestarzałe; jednak moja aplikacja musi obsługiwać również iOS 7 i muszę korzystać z UIAlertView, jeśli aplikacja działa na urządzeniu iOS 7. Ten widok alertu zawiera pole tekstowe i dwa przyciski, w których jednym z nich jest domyślny przycisk anulowania. Drugi przycisk powinien być wyłączony, o ile pole tekstowe jest puste.alertViewShouldEnableFirstOtherButton metoda delegata nie jest wywoływana
Oto mój kod:
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
}
Problemem jest; cokolwiek próbowałem, pierwszy inny przycisk i tak nie został wyłączony. W końcu zrezygnowałem z próby sprawdzenia tekstu w moim polu tekstowym i zaimplementowałem metodę delegowania alertViewShouldEnableFirstOtherButton tak, aby zawsze zwracała wartość false. Jednak wynik nie zmienił się i oba przyciski (o nazwie "Anuluj" i "Dodaj odbiorcę" w tym przykładzie) są nadal włączone. czego mi brakuje?