সুইফটে আইওএস সতর্কতায় টেক্সটফিল্ড থেকে ইনপুট মান পান


121

আমি ইনপুট দিয়ে একটি সতর্কতা বার্তা দেওয়ার চেষ্টা করছি এবং তারপরে ইনপুট থেকে মানটি পাব। ইনপুট পাঠ্য ক্ষেত্রটি কীভাবে তৈরি করা যায় সে সম্পর্কে আমি অনেকগুলি ভাল টিউটোরিয়াল পেয়েছি। তবে আমি সতর্কতা থেকে মান পেতে পারি না।


আইওএস এ একটি অ্যাকশন সতর্কতা?
অ্যান্ডি ইবনেজ 21

@ অ্যান্ডিবাবেনেজ হ্যাঁ, এটি উল্লেখ করেননি!
ntoonio

উত্তর:


334

সুইফট 3 এবং তারপরের জন্য আপডেট হয়েছে:

//1. Create the alert controller.
let alert = UIAlertController(title: "Some Title", message: "Enter a text", preferredStyle: .alert)

//2. Add the text field. You can configure it however you need.
alert.addTextField { (textField) in
    textField.text = "Some default text"
}

// 3. Grab the value from the text field, and print it when the user clicks OK.
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { [weak alert] (_) in
    let textField = alert.textFields![0] // Force unwrapping because we know it exists.
    print("Text field: \(textField.text)")
}))

// 4. Present the alert.
self.present(alert, animated: true, completion: nil)

সুইফট 2.x

ধরে নিচ্ছেন আপনি আইওএসে একটি অ্যাকশন সতর্কতা চান:

//1. Create the alert controller.            
var alert = UIAlertController(title: "Some Title", message: "Enter a text", preferredStyle: .Alert)

//2. Add the text field. You can configure it however you need.
alert.addTextFieldWithConfigurationHandler({ (textField) -> Void in
    textField.text = "Some default text."
})

//3. Grab the value from the text field, and print it when the user clicks OK. 
alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: { [weak alert] (action) -> Void in
    let textField = alert.textFields![0] as UITextField
    println("Text field: \(textField.text)")
}))

// 4. Present the alert.
self.presentViewController(alert, animated: true, completion: nil)

কোন সমস্যা নেই. এটি যদি আপনাকে সহায়তা করে তবে এটিকে স্বীকৃত হিসাবে চিহ্নিত করতে দয়া করে মনে রাখবেন। ধন্যবাদ!
অ্যান্ডি ইবনেজ

হাই @ অ্যান্ডিআবনেজ আমি আপনার কোডটি আমার অ্যাপ্লিকেশনটিতে প্রয়োগ করার চেষ্টা করছি, তবে এটিতে "অঘোষিত শনাক্তকারী বর্ণের ব্যবহার" এর ত্রুটিটি উল্লেখ করে আমি এক্সকোডে নতুন তাই ক্ষমা চাইছি যদি এটি আমার পক্ষ থেকে একটি প্রাথমিক ত্রুটি হয়
সজরিসন

@ সিজারিসন আমার কোডটি সুইফ্টের জন্য। আমি কী ভাবতে পারি তার একমাত্র কারণ আপনি varকীওয়ার্ডটি নিয়ে সমস্যার সৃষ্টি করতে পারেন তা যদি আপনি উদ্দেশ্য-সিতে লিখতেন।
অ্যান্ডি Ibanez

1
কেউ ব্যাখ্যা করতে পারেন কেন [weak alert]? আমি সুইফট 3
আন্দ্রেজ

3
3 ধাপে সুইফ্ট 3 সতর্কতার জন্য optionচ্ছিক, প্রয়োজনীয় "?" let textField = alert?.textFields![0] // Force unwrapping because we know it exists. print("Text field: \(textField?.text)")
জেমস

27

সুইফট 3/4

আপনি আপনার সুবিধার্থে নীচের এক্সটেনশনটি ব্যবহার করতে পারেন।

এর ভিতরে ব্যবহার ViewController:

showInputDialog(title: "Add number",
                subtitle: "Please enter the new number below.",
                actionTitle: "Add",
                cancelTitle: "Cancel",
                inputPlaceholder: "New number",
                inputKeyboardType: .numberPad)
{ (input:String?) in
    print("The new number is \(input ?? "")")
}

এক্সটেনশন কোড:

extension UIViewController {
    func showInputDialog(title:String? = nil,
                         subtitle:String? = nil,
                         actionTitle:String? = "Add",
                         cancelTitle:String? = "Cancel",
                         inputPlaceholder:String? = nil,
                         inputKeyboardType:UIKeyboardType = UIKeyboardType.default,
                         cancelHandler: ((UIAlertAction) -> Swift.Void)? = nil,
                         actionHandler: ((_ text: String?) -> Void)? = nil) {

        let alert = UIAlertController(title: title, message: subtitle, preferredStyle: .alert)
        alert.addTextField { (textField:UITextField) in
            textField.placeholder = inputPlaceholder
            textField.keyboardType = inputKeyboardType
        }
        alert.addAction(UIAlertAction(title: actionTitle, style: .default, handler: { (action:UIAlertAction) in
            guard let textField =  alert.textFields?.first else {
                actionHandler?(nil)
                return
            }
            actionHandler?(textField.text)
        }))
        alert.addAction(UIAlertAction(title: cancelTitle, style: .cancel, handler: cancelHandler))

        self.present(alert, animated: true, completion: nil)
    }
}

শুধু মনে রাখুন যে যদি আপনি বর্তমান করতে যাচ্ছি "যোগ করুন" কর্ম নিশ্চিত করুন শৈলী যদি "ডিফল্ট" "ধ্বংসাত্মক" না - alert.addAction (UIAlertAction (শিরোনাম: actionTitle, শৈলী: .default ...
বিশাল ঘিমিরে

13

সুইফট 5 এ আনন্দের এক্সকোড 10

সংরক্ষণ এবং বাতিল ক্রিয়া সহ দুটি পাঠ্যক্ষেত্র যুক্ত করুন এবং পাঠ্যফিল্ডগুলির পাঠ্য ডেটা পড়ুন

func alertWithTF() {
    //Step : 1
    let alert = UIAlertController(title: "Great Title", message: "Please input something", preferredStyle: UIAlertController.Style.alert )
    //Step : 2
    let save = UIAlertAction(title: "Save", style: .default) { (alertAction) in
        let textField = alert.textFields![0] as UITextField
        let textField2 = alert.textFields![1] as UITextField
        if textField.text != "" {
            //Read TextFields text data
            print(textField.text!)
            print("TF 1 : \(textField.text!)")
        } else {
            print("TF 1 is Empty...")
        }

        if textField2.text != "" {
            print(textField2.text!)
            print("TF 2 : \(textField2.text!)")
        } else {
            print("TF 2 is Empty...")
        }
    }

    //Step : 3
    //For first TF
    alert.addTextField { (textField) in
        textField.placeholder = "Enter your first name"
        textField.textColor = .red
    }
    //For second TF
    alert.addTextField { (textField) in
        textField.placeholder = "Enter your last name"
        textField.textColor = .blue
    }

    //Step : 4
    alert.addAction(save)
    //Cancel action
    let cancel = UIAlertAction(title: "Cancel", style: .default) { (alertAction) in }
    alert.addAction(cancel)
    //OR single line action
    //alert.addAction(UIAlertAction(title: "Cancel", style: .default) { (alertAction) in })

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

}

আরও ব্যাখ্যার জন্য https://medium.com/@chan.henryk/alert-controller-with-text-field-in-swift-3-bda7ac06026c

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.