2015-05-07 13 views
6

से टेक्स्ट प्राप्त करने में समस्याएं मेरे आवेदन में मुझे टेक्स्टफील्ड के साथ एक अलर्ट चाहिए। "पूर्ण" पर क्लिक करने के बाद मैं स्ट्रिंग में टेक्स्टफील्ड इनपुट को सहेजना चाहता हूं। "रद्द करें" पर क्लिक करने के बाद मैं केवल अलर्ट बंद करना चाहता हूं। मैं इस तरह मेरी सूचना के बना लिया है:UIAlertView टेक्स्टफील्ड

var alert = UIAlertView() 
    alert.title = "Enter Input" 
    alert.addButtonWithTitle("Done") 
    alert.alertViewStyle = UIAlertViewStyle.PlainTextInput 
    alert.addButtonWithTitle("Cancel") 
    alert.show() 

    let textField = alert.textFieldAtIndex(0) 
    textField!.placeholder = "Enter an Item" 
    println(textField!.text) 

चेतावनी इस तरह दिखता है:

My alert

मैं कैसे पाठ फ़ील्ड से टेक्स्ट प्राप्त करने के लिए, और के लिए घटनाओं को बनाने का तरीका जानना चाहते हैं "पूर्ण" बटन और "रद्द करें" बटन।

+1

आप उचित 'लागू करने की आवश्यकता UIAlertViewDelegate 'विधियां (और अलर्ट व्यू की 'प्रतिनिधि' संपत्ति सेट करें)। – rmaddy

+0

क्या कोई मुझे इस "UIAlerrViewDelegate" के साथ एक उदाहरण दे सकता है? –

+1

कृपया एक छोटी सी खोज करें (http://stackoverflow.com/search?q=uialertview+swift)। – rmaddy

उत्तर

27

आप UIAlertController बजाय UIAlertView के साथ जा सकते हैं होगा।

मैंने पहले से ही आप जो चाहते हैं उसके लिए UIAlertController का उपयोग करके भी लागू और परीक्षण किया है। निम्नलिखित कोड

var tField: UITextField! 

    func configurationTextField(textField: UITextField!) 
    { 
     print("generating the TextField") 
     textField.placeholder = "Enter an item" 
     tField = textField 
    } 

    func handleCancel(alertView: UIAlertAction!) 
    { 
     print("Cancelled !!") 
    } 

    var alert = UIAlertController(title: "Enter Input", message: "", preferredStyle: .Alert) 

    alert.addTextFieldWithConfigurationHandler(configurationTextField) 
    alert.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler:handleCancel)) 
    alert.addAction(UIAlertAction(title: "Done", style: .Default, handler:{ (UIAlertAction) in 
     print("Done !!") 

     print("Item : \(self.tField.text)") 
    })) 
    self.presentViewController(alert, animated: true, completion: { 
     print("completion block") 
    }) 
+1

बिल्कुल वही जो मैं खोज रहा हूं। –

+1

इसके लिए धन्यवाद .. :) –

+2

@ धर्मेशेनी ने कहा कि इससे आपकी मदद की! – iRiziya

2

आप को लागू करने के UIAlertViewDelegate के

optional func alertView(_ alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) 
0

आईओएस 8 आप UIAlertController बजाय UIAlertView का उपयोग करना चाहिए के लिए प्रयास करें। iOS 7 आप को लागू करना चाहिए (UIAlertViewDelegate) का समर्थन करने के लिए:

func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) 
{ 
    //... 
    let textField = alertView.textFieldAtIndex(0) 
} 
1

के लिए स्विफ्ट 3

@IBAction func ForgotPassword(_ sender: Any) { 

    let alertController = UIAlertController(title: "Email?", message: "Please input your email:", preferredStyle: .alert) 

    let confirmAction = UIAlertAction(title: "Confirm", style: .default) { (_) in 
     if let field = alertController.textFields![0] as? UITextField { 

      // store and use entered data 

     } else { 

      print("please enter email id") 
     } 
    } 

    let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (_) in } 

    alertController.addTextField { (textField) in 
     textField.placeholder = "Email" 
    } 

    alertController.addAction(confirmAction) 
    alertController.addAction(cancelAction) 

    self.present(alertController, animated: true, completion: nil) 

} 

मुझे आशा है कि यह मदद मिलेगी किसी और :)

संबंधित मुद्दे