Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> IOS

स्विफ्ट में टेक्स्टफिल्ड इनपुट को मान्य करने का सामान्य तरीका

<घंटा/>

आप कितनी बार एप्लिकेशन विकसित करते हैं और आप प्रत्येक इनपुट फ़ील्ड के लिए समान सत्यापन लिखते हैं। ऐसा ही एक उदाहरण उपयोगकर्ता पंजीकरण, लॉगिन स्क्रीन या पंजीकरण स्क्रीन या कोई अन्य स्क्रीन है। प्रत्येक इनपुट फ़ील्ड के लिए कोड की एक ही पंक्ति लिखना कठिन हो जाता है इसके अलावा आप एक ही गलती कर सकते हैं।

डिज़ाइन के अनुसार प्रत्येक फ़ील्ड के लिए सत्यापन लिखने की अनुशंसा नहीं की जाती है, बल्कि आपको सामान्य सत्यापन कार्य लिखना चाहिए।

इसलिए इस ब्लॉग में हम इनपुट टेक्स्ट फ़ील्ड्स की सामान्य सत्यापन लाइब्रेरी लिखेंगे।

आनुवंशिक सत्यापन पुस्तकालय लिखने के लाभ।

  • सभी कार्यों के लिए सक्षम कोड का पुन:उपयोग करें।
  • मानवीय त्रुटि की संभावना कम हो रही है।
  • सेटअप करने और अपने कोड से जुड़ने में बहुत तेज़।
  • एक फ़ंक्शन को फिर से लिख सकता है और सभी में प्रतिबिंबित होगा।
  • एक फ़ंक्शन को बदलने से सब कुछ बदल जाएगा।

आइए शुरू करें,

हम अपनी वेलिडेशन लाइब्रेरी और वेलिडेशन एप्लिकेशन विकसित करेंगे, जहां हम अपनी लाइब्रेरी के साथ 4 इनपुट फील्ड को वेलिडेट करेंगे।

हमारी लाइब्रेरी सामान्य होगी और जरूरत के अनुसार पूरी तरह से विस्तारित होगी।

चरण 1 - ओपन एक्सकोड, सिंगल व्यू एप्लिकेशन, इसे वैलिडेशन नाम दें।

चरण 2 - नया वर्ग बनाएं, फ़ाइल - → नई फ़ाइल जोड़ें - → स्विफ्ट फ़ाइल - → Validtion.swift।

चरण 3 - Main.storyboard खोलें और UI को नीचे दिखाए अनुसार जोड़ें

स्विफ्ट में टेक्स्टफिल्ड इनपुट को मान्य करने का सामान्य तरीका

हमने 4 टेक्स्ट फ़ील्ड और एक बटन जोड़ा है, सभी फ़ील्ड दर्ज करने के बाद जब उपयोगकर्ता मान्य बटन पर टैप करता है, तो यह सभी फ़ील्ड और प्रिंट को मान्य करता है जो गलत तरीके से दर्ज किया गया था, अगर सब ठीक हो जाता है तो यह प्रिंट करता है कि सभी फ़ील्ड सही हैं।

चरण 4 - बटन के लिए @IBAction और सभी इनपुट फ़ील्ड के लिए @IBOutlet बनाएं

आयात करें @IBOutlet varValidEmailTxtFld:UITextField! @IBOutlet varValidPasswordTxtFld:UITextField! @IBOutlet varValidPhoneTxtFld:UITextField! @IBAction func validateBtn(_ प्रेषक:कोई भी) { }}

चरण 5 − Validation.swift खोलें, यहां हम अपना वेलिडेशन कोड जोड़ेंगे।

नीचे दिए गए कोड को कॉपी करें और Validation.swift में पेस्ट करें

इंपोर्ट फाउंडेशनक्लास वैलिडेशन {सार्वजनिक funcValidName(name:String) ->Bool {// लंबाई 18 वर्ण अधिकतम और 3 वर्ण न्यूनतम, आप हमेशा संशोधित कर सकते हैं। चलो nameRegex ="^\\w{3,18}$" trimmedString =name.trimmingCharacters(in:.whitespaces) चलो वैलिडेटनाम =NSPredicate (प्रारूप:"SELF MATCHES%@", nameRegex) चलो isValidateName =ValidName.evaluate( के साथ:trimmedString) वापसी isValidateName} सार्वजनिक func वैधताफोननंबर (फोननंबर:स्ट्रिंग) -> बूल { चलो फोननंबर रेगेक्स ="^ [6-9] \\ डी {9} $" ट्रिम किए गएस्ट्रिंग =फोन नम्बर। ट्रिमिंग कैरेक्टर (इन:व्हाइटस्पेस) चलो वैलिडेटफोन =एनएसपी्रेडिकेट (प्रारूप:"सेल्फ मैच% @", फोननंबर रेगेक्स) लेट वैलिडफोन =वैलिडेटफोन। इवैल्यूएट (साथ:ट्रिम्डस्ट्रिंग) रिटर्न वैलिडफोन} पब्लिक फंक वैलिडेट ईमेल आईडी (ईमेलआईडी:स्ट्रिंग) -> बूल {ईमेल रेगेक्स ="[ए-जेड 0- 9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}" ट्रिम किए गए स्ट्रिंग =ईमेल आईडी.ट्रिमिंग कैरेक्टर (इन:व्हाइटस्पेस दें) ) चलो मान्य करेंईमेल =एनएसपी्रेडिकेट (प्रारूप:"स्वयं से मेल खाता है% @", ईमेल रेगेक्स) चलो isValidateEmail =ValidEmail.evaluate (साथ:trimmedString) वापसी मान्य है ईमेल } पब्लिक फंक वैलिडेटपासवर्ड (पासवर्ड:स्ट्रिंग) -> बूल {//न्यूनतम 8 अक्षर कम से कम 1 वर्णमाला और 1 संख्या:चलो पासरेगेक्स ="^ (? =। * [ए-ज़ा-जेड]) (? =। * \\d)[A-Za-z\\d]{8,}$" trimmedString =password.trimmingCharacters(in:.whitespaces) चलो वैलिडेटपासॉर्ड =NSPredicate(format:"SELF MATCHES %@", passRegEx) चलो isvalidatePass =ValidPassord.evaluate(साथ:trimmedString) वापसी isvalidatePass} सार्वजनिक func मान्यAnyOtherTextField(otherField:String) -> बूल { अन्य रेगेक्सस्ट्रिंग ="आपका रेगेक्स स्ट्रिंग" को ट्रिम करने दें :"सेल्फ मैच% @", अन्य रेगेक्सस्ट्रिंग) चलो isValidateOtherString =ValidOtherString.evaluate (साथ:trimmedString) वापसी isValidateOtherString}}

हम आवश्यकता के अनुसार प्रत्येक इनपुट के लिए RegexString में हेरफेर कर सकते हैं।

चरण 6 - ViewController.swift खोलें, और Validation.swift का ऑब्जेक्ट बनाएं

var सत्यापन =सत्यापन ()

अब, हम इनपुट फ़ील्ड को खोलने के लिए गार्ड का उपयोग करेंगे

गार्ड लेट नेम =वैलिडेटनामTxtFld.text, ईमेल करें =वैलिडेट ईमेलTxtFld.text, पासवर्ड दें =वैलिडेटपासवर्डTxtFld.text, फोन को वैलिडेट करें =फोन को वैलिडेट करें। 

चरण 7 - अब हम प्रत्येक क्षेत्र के लिए अपने मान्य कार्यों को कॉल करेंगे, और जांच करेंगे कि क्या यह गलत है और "फ़ील्ड अमान्य" प्रिंट करेगा या नहीं।

let isValidateName =self.validation.validateName(name:name)if (isValidateName ==false) {print("गलत नाम") रिटर्न} let isValidateEmail =self.validation.validateEmailId(emailID:ईमेल) if (isValidateEmail ==असत्य) {प्रिंट ("गलत ईमेल") वापसी} लेट isValidatePass =self.validation.validatePassword (पासवर्ड:पासवर्ड) अगर (isValidatePass ==false) {प्रिंट ("गलत पास") रिटर्न} isValidatePhone =self.validation। वैलिडाफोन नंबर (फोन नंबर:फोन) अगर (isValidatePhone ==false) {प्रिंट ("गलत फोन") रिटर्न}

चरण 8 - अगर सभी फ़ील्ड सही हैं तो हम "सभी फ़ील्ड सही हैं" प्रिंट करेंगे

if (isValidateName ==true || isValidateEmail ==true || isValidatePass ==true || isValidatePhone ==true) { प्रिंट ("सभी फ़ील्ड सही हैं")}

हम कर चुके हैं! VeiwController.swift के लिए अंतिम कोड चेकआउट करें

आयात करें @IBOutlet varValidEmailTxtFld:UITextField! @IBOutlet varValidPasswordTxtFld:UITextField! @IBOutlet varValidPhoneTxtFld:UITextField! @IBAction func validateBtn (_ प्रेषक:कोई भी) { गार्ड लेट नाम =वैलिडेटनामTxtFld.text, ईमेल को मान्य करें =ईमेल को मान्य करें। वैलिडेटनाम (नाम:नाम) अगर (isValidateName ==असत्य) {प्रिंट ("गलत नाम") वापसी} चलो isValidateEmail =self.validation.validateEmailId (ईमेल आईडी:ईमेल) अगर (isValidateEmail ==false) {प्रिंट ("गलत ईमेल" ) वापसी} चलो isValidatePass =self.validation.validatePassword (पासवर्ड:पासवर्ड) अगर (isValidatePass ==false) {प्रिंट ("गलत पास") वापसी } चलो isValidatePhone =self.validation.validaPhoneNumber (फोन नंबर:फोन) अगर (isValidatePhone ==झूठा) {प्रिंट ("गलत फोन") वापसी} अगर (isValidateName ==true || isValidateEmail ==true || isValidatePass ==true || है ValidatePhone ==true) {प्रिंट ("सभी फ़ील्ड सही हैं")}}}

  1. स्विफ्ट में टेबल व्यू सेल की ऊंचाई को गतिशील रूप से बदलें

    आईओएस में टेबल व्यू सेल की ऊंचाई को गतिशील रूप से बदलने के लिए, यानी उपलब्ध सामग्री के अनुसार सेल का आकार बदलना, हमें स्वचालित आयाम संपत्ति का उपयोग करने की आवश्यकता होगी। हम इसे एक नमूना प्रोजेक्ट की मदद से देखेंगे। एक खाली प्रोजेक्ट बनाएं और इसके व्यू कंट्रोलर क्लास में जाएं, इसे UITableViewDataS

  1. नेविगेशनबार में सीमा को तेजी से कैसे हटाएं?

    नेविगेशन बार से सीमा को तेजी से हटाने के लिए, हमें बस कोड की कुछ पंक्तियाँ जोड़ने की आवश्यकता है। आइए देखें कि जब हम इसे बिना कुछ बदले चलाते हैं तो नेविगेशन बार कैसा दिखता है। अब उपरोक्त परिणाम में दिखाई गई रेखा/बॉर्डर को छिपाने का प्रयास करते हैं। नेविगेशन बार में दो चीजें हैं जो इसे नीचे की रे

  1. टेक्स्ट स्विफ्ट पर छाया कैसे जोड़ें?

    यदि आप कोई गेम या बच्चों का एप्लिकेशन या कोई एप्लिकेशन विकसित कर रहे हैं जहां आप आकर्षक यूजर इंटरफेस बनाना चाहते हैं तो आपको पता होना चाहिए कि टेक्स्ट पर छाया कैसे जोड़ना है। यह न केवल टेक्स्ट को आकर्षक बनाएगा बल्कि यह उपयोगकर्ता के अनुभव को भी बढ़ाएगा। यहां हम देखेंगे कि हम टेक्स्ट पर शैडो कैसे जो