स्वतः सुधार iOS में निर्मित एक तंत्र है जो टेक्स्ट इनपुट करते समय वर्तनी की त्रुटियों को स्वचालित रूप से सुधारता है। UIKit UITextInputTraits प्रोटोकॉल की autocorrectionType संपत्ति के माध्यम से स्वतः सुधार व्यवहार को प्रबंधित करता है, तीन मोड का समर्थन करता है: डिफ़ॉल्ट, सक्षम और अक्षम। Apple Text Programming Guide (2025) के अनुसार, स्वतः सुधार सिस्टम डिक्शनरी और डिवाइस पर मशीन लर्निंग के आधार पर इनपुट टेक्स्ट का विश्लेषण करता है। प्रत्येक टेक्स्ट फ़ील्ड के लिए अलग से autocorrectionType का उपयोग करें — यह इनपुट डेटा की विशिष्टता के अनुसार व्यवहार को अनुकूलित करने की अनुमति देता है।
मुख्य बिंदु
स्वतः सुधार iOS ऑपरेटिंग सिस्टम की एक विशेषता है जो वर्तनी त्रुटि का पता चलने पर टाइप किए गए शब्दों को स्वचालित रूप से संभावित सही विकल्पों से बदल देती है। तंत्र UIKit टेक्स्ट फ़ील्ड के स्तर पर काम करता है और मानक UITextField और UITextView इनपुट तत्वों का उपयोग करने वाले सभी अनुप्रयोगों में उपलब्ध है।
स्वतः सुधार के मूल में एक भाषा मॉडल है जो प्रत्येक समर्थित भाषा के लिए लाखों टेक्स्ट उदाहरणों पर प्रशिक्षित है। मॉडल पूरी तरह से डिवाइस पर (on-device) काम करता है, जो इनपुट डेटा की गोपनीयता सुनिश्चित करता है — टेक्स्ट विश्लेषण के लिए Apple सर्वर पर नहीं भेजा जाता है। प्रत्येक iOS अपडेट के साथ, मॉडल को नए शब्दों और नियमों के साथ परिष्कृत और विस्तारित किया जाता है।
स्वतः सुधार सभी टेक्स्ट फ़ील्ड के लिए स्वचालित रूप से सक्रिय होता है जब तक कि डेवलपर इसे स्पष्ट रूप से अक्षम न करे। उपयोगकर्ता सिस्टम सेटिंग्स (सेटिंग्स > सामान्य > कीबोर्ड > स्वतः सुधार) में स्वतः सुधार को पूरी तरह से अक्षम कर सकता है, लेकिन डेवलपर autocorrectionType संपत्ति के माध्यम से अलग-अलग फ़ील्ड के लिए इस व्यवहार को भी नियंत्रित कर सकता है।
WWDC 2023 सत्र 204 के अनुसार, Apple ने Transformer पर आधारित एक बेहतर स्वतः सुधार भाषा मॉडल प्रस्तुत किया, जो केवल अंतिम शब्द के बजाय पूरे वाक्य के संदर्भ पर विचार करता है। इसने पिछले n-gram आधारित मॉडल की तुलना में गलत सुधारों को 30% कम कर दिया।
UITextAutocorrectionType तीन मानों वाली एक गणना है जो किसी विशिष्ट टेक्स्ट फ़ील्ड के लिए स्वतः सुधार व्यवहार निर्धारित करती है। प्रत्येक मान autocorrectionType संपत्ति के माध्यम से सेट किया जाता है, जो Interface Builder और फ़ील्ड बनाते समय कोड में उपलब्ध है।
.default मान का अर्थ है कि फ़ील्ड कीबोर्ड के सिस्टम पैरामीटर से वैश्विक स्वतः सुधार सेटिंग प्राप्त करता है। यह मोड अधिकांश टेक्स्ट फ़ील्ड के लिए अनुशंसित है क्योंकि यह उपयोगकर्ता की पसंद का सम्मान करता है। यदि उपयोगकर्ता ने सेटिंग्स में स्वतः सुधार अक्षम किया है, तो .default वाला फ़ील्ड भी इसका उपयोग नहीं करेगा।
.yes मान सिस्टम सेटिंग की परवाह किए बिना फ़ील्ड के लिए स्वतः सुधार को बलपूर्वक सक्षम करता है। इस मोड का उपयोग केवल उन फ़ील्ड के लिए किया जाना चाहिए जहाँ वर्तनी सटीकता महत्वपूर्ण है — उदाहरण के लिए, टेक्स्ट एडिटर, नोट इनपुट फ़ील्ड या संदेशों में। Apple सावधानी के साथ .yes का उपयोग करने की अनुशंसा करता है, क्योंकि बलपूर्वक सक्षम करना उपयोगकर्ता की अपेक्षाओं के विपरीत हो सकता है।
.no मान किसी विशिष्ट फ़ील्ड के लिए स्वतः सुधार अक्षम करता है। यह मोड पासवर्ड फ़ील्ड (सुरक्षित टेक्स्ट एंट्री), ईमेल पते, सत्यापन कोड और खोज क्वेरी के लिए अनिवार्य है। इन फ़ील्ड में, स्वतः सुधार न केवल बेकार है बल्कि हानिकारक भी है — यह सही ढंग से दर्ज किए गए डेटा को गलत विकल्पों से बदल सकता है।
| मोड | मान | अनुशंसा |
|---|---|---|
| .default | सिस्टम सेटिंग प्राप्त करता है | अधिकांश इनपुट फ़ील्ड |
| .yes | बलपूर्वक सक्षम | टेक्स्ट एडिटर, नोट्स |
| .no | बलपूर्वक अक्षम | पासवर्ड, ईमेल, खोज, कोड |
iOS स्वतः सुधार का भाषा मॉडल एक स्थिर शब्दकोश और गतिशील रूप से प्रशिक्षित मॉडल के संयोजन का उपयोग करता है। सिस्टम शब्दकोश में प्रत्येक भाषा के लिए सबसे अधिक उपयोग किए जाने वाले शब्द होते हैं, जबकि Transformer-आधारित भाषा मॉडल संदर्भ और प्रतिस्थापन संभावना का विश्लेषण करता है। मॉडल उपयोगकर्ता द्वारा दर्ज किए गए टेक्स्ट के आधार पर डिवाइस पर प्रशिक्षित होता है।
उपयोगकर्ता कीबोर्ड सेटिंग्स (सेटिंग्स > सामान्य > कीबोर्ड > टेक्स्ट रिप्लेसमेंट) के माध्यम से एक व्यक्तिगत शब्दकोश में शब्द जोड़ सकते हैं। जोड़े गए शब्द iCloud में सहेजे जाते हैं और एक ही Apple ID का उपयोग करके उपकरणों में सिंक किए जाते हैं। सिस्टम व्यक्तिगत शब्दकोश के शब्दों को सही नहीं करेगा, जो नामों, ब्रांडों और तकनीकी शब्दों के लिए सुविधाजनक है।
विशिष्ट डोमेन — चिकित्सा, कानूनी, तकनीकी — के लिए मानक शब्दकोश में अपर्याप्त शब्द हो सकते हैं। ऐसे अनुप्रयोगों में, संबंधित फ़ील्ड के लिए स्वतः सुधार अक्षम करने या iOS 17+ के लिए UIResponder विधि .replacementDictionary के माध्यम से कस्टम टेक्स्ट रिप्लेसमेंट का उपयोग करने की अनुशंसा की जाती है।
Apple Machine Learning Research (2024) के अनुसार, Transformer आर्किटेक्चर पर आधारित नया स्वतः सुधार मॉडल 10 संदर्भ टोकन तक संसाधित करता है (पिछले मॉडल में 3 टोकन की तुलना में), जो उपयोगकर्ता के इरादे को अधिक सटीक रूप से निर्धारित करने की अनुमति देता है। मॉडल न केवल वर्तनी बल्कि वाक्य की व्याकरणिक संरचना पर भी विचार करता है।
Safe Keyboard एक संरक्षित इनपुट मोड है जो secureTextEntry = true वाले फ़ील्ड के लिए स्वचालित रूप से सक्रिय होता है। इस मोड में, स्वतः सुधार, स्वतः कैपिटलाइज़ेशन और पूर्वानुमानित इनपुट सिस्टम द्वारा अक्षम कर दिए जाते हैं, भले ही autocorrectionType के सेट मान कुछ भी हों। सिस्टम उपयोगकर्ता शब्दकोश और टेक्स्ट रिप्लेसमेंट तक पहुँच को भी अवरुद्ध करता है।
Safe Keyboard स्वतः सुधार तंत्र के माध्यम से इनपुट डेटा के रिसाव को रोकता है। यदि पासवर्ड फ़ील्ड के लिए स्वतः सुधार सक्रिय होता, तो सिस्टम दर्ज किए गए पासवर्ड को उपयोगकर्ता शब्दकोश में सहेज सकता था या मॉडल प्रशिक्षण के लिए Apple सर्वर पर भेज सकता था। Safe Keyboard सुनिश्चित करता है कि गोपनीय डेटा एप्लिकेशन की सीमा से बाहर न जाए।
वित्तीय अनुप्रयोगों के लिए, Safe Keyboard केवल secureTextEntry वाले फ़ील्ड के लिए स्वचालित रूप से सक्रिय होता है। कार्ड नंबर, समाप्ति तिथि और CVV कोड इनपुट फ़ील्ड के लिए, डेवलपर को autocorrectionType = .no और keyboardType = .numberPad या .phonePad सेट करके मैन्युअल रूप से स्वतः सुधार अक्षम करना होगा।
iOS 17 से शुरू होकर, Safe Keyboard तृतीय-पक्ष कीबोर्ड के माध्यम से अवरोधन से सुरक्षा का समर्थन करता है। यदि उपयोगकर्ता ने App Store से कीबोर्ड स्थापित किया है, तो secureTextEntry सक्रिय होने पर, सिस्टम कीबोर्ड स्वचालित रूप से तृतीय-पक्ष कीबोर्ड को बदल देता है, भले ही वह डिफ़ॉल्ट रूप से चुना गया हो। यह सुनिश्चित करता है कि पासवर्ड केवल सुरक्षित सिस्टम कीबोर्ड के माध्यम से दर्ज किए जाएं।
Swift में स्वतः सुधार का प्रबंधन UITextField और UITextView ऑब्जेक्ट की autocorrectionType संपत्ति के माध्यम से किया जाता है। संपत्ति पढ़ने और लिखने दोनों के लिए उपलब्ध है, और इनपुट संदर्भ के आधार पर गतिशील रूप से बदली जा सकती है। Interface Builder के माध्यम से कॉन्फ़िगरेशन एट्रीब्यूट इंस्पेक्टर में Correction नाम के तहत उपलब्ध है।
let textField = UITextField()
textField.autocorrectionType = .no
लॉगिन फ़ॉर्म के लिए, पासवर्ड फ़ील्ड के लिए स्वतः सुधार अक्षम किया जाना चाहिए और लॉगिन फ़ील्ड के लिए डिफ़ॉल्ट रूप से सक्षम किया जाना चाहिए। ईमेल फ़ील्ड को भी बिना स्वतः सुधार के छोड़ने की अनुशंसा की जाती है, क्योंकि @ प्रतीक और डोमेन नाम अक्सर गलत तरीके से बदल दिए जाते हैं। उपयोगकर्ता नाम फ़ील्ड के लिए, स्वतः सुधार सक्षम किया जा सकता है यदि उपयोगकर्ता नाम एक पठनीय शब्द है।
class RegistrationViewController: UIViewController {
@IBOutlet var nameField: UITextField!
@IBOutlet var emailField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
nameField.autocorrectionType = .yes
emailField.autocorrectionType = .no
emailField.textContentType = .emailAddress
}
}
UITextView के लिए, स्वतः सुधार कॉन्फ़िगरेशन समान रूप से किया जाता है। यह टिप्पणियों, संदेशों और नोट्स के लिए बहु-पंक्ति इनपुट फ़ील्ड के लिए विशेष रूप से महत्वपूर्ण है, जहाँ स्वतः सुधार सबसे अधिक लाभ पहुँचाता है लेकिन तकनीकी शब्दों या कोड को इनपुट करते समय असुविधा भी पैदा कर सकता है।
let textView = UITextView()
textView.autocorrectionType = .default
गतिशील परिवर्तन के लिए, UITextFieldDelegate का उपयोग करें। textFieldDidBeginEditing विधि फ़ील्ड सक्रिय होने पर कॉल की जाती है, और इसमें आप वर्तमान संदर्भ या फ़ील्ड की भूमिका के आधार पर autocorrectionType बदल सकते हैं, जो एप्लिकेशन संचालन के दौरान बदल सकती है।
स्वतः सुधार अक्षम किया जाना चाहिए उन फ़ील्ड में जहाँ इनपुट डेटा की सटीकता महत्वपूर्ण है और सिस्टम उपयोगकर्ता के इरादे को सही ढंग से निर्धारित नहीं कर सकता। मुख्य मामले: पासवर्ड और सुरक्षित डेटा फ़ील्ड, ईमेल पते इनपुट फ़ील्ड, खोज स्ट्रिंग, कोड और प्रोग्राम कोड इनपुट फ़ील्ड, साथ ही गैर-मानक डेटा प्रारूप वाले फ़ील्ड।
खोज पट्टियों (UISearchBar) के लिए, स्वतः सुधार डिफ़ॉल्ट रूप से अक्षम है, जो उपयोगकर्ता की अपेक्षाओं से मेल खाता है। खोज करते समय, उपयोगकर्ता अधूरे शब्द, तकनीकी शब्द या विभिन्न भाषाओं में क्वेरी दर्ज कर सकता है, और स्वतः सुधार केवल बाधा उत्पन्न करेगा। URL और डोमेन नाम इनपुट फ़ील्ड के लिए भी यही स्थिति है।
मैसेंजर और संचार ऐप में, स्वतः सुधार आमतौर पर सक्षम होता है, लेकिन स्लैंग, संक्षिप्ताक्षर और अनौपचारिक शब्दावली दर्ज करने के लिए यह असुविधा पैदा कर सकता है। ऐसे मामलों में, उपयोगकर्ता कीबोर्ड सेटिंग्स के माध्यम से स्वतः सुधार अक्षम कर सकता है, या डेवलपर एप्लिकेशन इंटरफ़ेस में सीधे एक टॉगल प्रदान कर सकता है।
Apple Human Interface Guidelines के अनुसार, किसी भी फ़ील्ड के लिए स्वतः सुधार अक्षम किया जाना चाहिए जहाँ इनपुट डेटा सिस्टम शब्दकोश में नहीं मिल सकता: ऑर्डर नंबर, बुकिंग कोड, पहचानकर्ता, IMEI, MAC पते। यदि फ़ील्ड गैर-मानक प्रारूप में अल्फ़ान्यूमेरिक डेटा स्वीकार करता है — स्वतः सुधार अक्षम करें।
अक्सर पूछे जाने वाले प्रश्न
पूरे एप्लिकेशन के लिए स्वतः सुधार का कोई वैश्विक अक्षमीकरण नहीं है। प्रत्येक टेक्स्ट फ़ील्ड के लिए अलग से autocorrectionType = .no सेट करना या अधिलेखित मान के साथ UITextField उपवर्ग बनाना आवश्यक है।
सिम्युलेटर Mac कीबोर्ड से एक सरलीकृत इनपुट मॉडल का उपयोग करता है। सिम्युलेटर पर स्वतः सुधार भाषा मॉडल सक्रिय नहीं है — परीक्षण के लिए वास्तविक डिवाइस का उपयोग करें।
उपयोगकर्ता सेटिंग्स > सामान्य > कीबोर्ड > टेक्स्ट रिप्लेसमेंट के माध्यम से शब्द जोड़ सकता है। एप्लिकेशन के लिए सिस्टम स्वतः सुधार शब्दकोश में प्रोग्रामेटिक रूप से शब्द जोड़ने का कोई API नहीं है।
नहीं, keyboardType स्वतः सुधार को प्रभावित नहीं करता है। .numberPad कीबोर्ड के लिए भी, स्वतः सुधार सक्रिय हो सकता है यदि autocorrectionType के माध्यम से स्पष्ट रूप से अक्षम नहीं किया गया है।
तृतीय-पक्ष कीबोर्ड में स्वतः सुधार के अपने तंत्र होते हैं और वे सिस्टम UITextAutocorrectionType का उपयोग नहीं करते हैं। व्यवहार विशिष्ट कीबोर्ड के कार्यान्वयन पर निर्भर करता है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें