ऑटोकैपिटलाइज़ेशन iOS का एक तंत्र है जो कुछ संदर्भों में दर्ज टेक्स्ट के पहले अक्षर को स्वचालित रूप से बड़े अक्षर (कैपिटल) में बदल देता है। UIKit UITextInputTraits प्रोटोकॉल में autocapitalizationType प्रॉपर्टी चार मोड के साथ प्रदान करता है: none, words, sentences और allCharacters। Apple Text Programming Guide (2025) के अनुसार, ऑटोकैपिटलाइज़ेशन का सही कॉन्फ़िगरेशन उपयोगकर्ता अनुभव को बेहतर बनाता है और इनपुट के दौरान मैन्युअल सुधारों की संख्या कम करता है। अधिकांश टेक्स्ट फ़ील्ड के लिए sentences मोड और उपयोगकर्ता नाम और पासवर्ड के लिए none मोड का उपयोग करें।
मुख्य बिंदु
ऑटोकैपिटलाइज़ेशन iOS ऑपरेटिंग सिस्टम की एक सुविधा है जो कुछ शर्तों के पूरा होने पर टेक्स्ट के पहले अक्षर को स्वचालित रूप से बड़े अक्षर में बदल देती है। यह तंत्र autocapitalizationType प्रॉपर्टी के माध्यम से नियंत्रित होता है, जो UITextInputTraits प्रोटोकॉल को लागू करने वाले सभी तत्वों के लिए उपलब्ध है: UITextField, UITextView और UISearchBar।
यह सुविधा iOS टेक्स्ट इंजन स्तर पर काम करती है और प्रत्येक अक्षर दर्ज करने के क्षण में सक्रिय होती है। सिस्टम कर्सर की स्थिति और आसपास के टेक्स्ट का विश्लेषण करके यह निर्धारित करता है कि वर्तमान इनपुट अक्षर को कैपिटल करना है या नहीं। यदि शर्त पूरी होती है, तो iOS स्वचालित रूप से छोटे अक्षर को बड़े अक्षर से बदल देता है, इससे पहले कि वह फ़ील्ड में प्रदर्शित हो।
Apple Human Interface Guidelines (2025) के अनुसार, ऑटोकैपिटलाइज़ेशन एक व्यापक पूर्वानुमानित इनपुट प्रणाली का हिस्सा है जिसमें ऑटोकरेक्शन और पूर्वानुमानित टेक्स्ट इनपुट भी शामिल है। उपयोगकर्ता सिस्टम सेटिंग्स (सेटिंग्स > सामान्य > कीबोर्ड) में इन सभी सुविधाओं को वैश्विक रूप से बंद कर सकता है, लेकिन डेवलपर उन्हें विशिष्ट फ़ील्ड स्तर पर भी नियंत्रित करता है।
ऑटोकरेक्शन के विपरीत, ऑटोकैपिटलाइज़ेशन भाषा मॉडल का उपयोग नहीं करता — यह सरल नियमों द्वारा काम करता है: बिंदु और स्थान के बाद, टेक्स्ट की शुरुआत में, नई पंक्ति वर्ण के बाद। अपवाद words मोड है, जहाँ प्रत्येक शब्द का पहला अक्षर संदर्भ की परवाह किए बिना कैपिटल होता है।
UITextAutocapitalizationType चार मानों की एक गणना है जो स्वचालित केस रूपांतरण रणनीति को परिभाषित करती है। प्रत्येक मोड एक विशिष्ट प्रकार के टेक्स्ट फ़ील्ड के लिए डिज़ाइन किया गया है और एक विशेष उपयोगकर्ता अनुभव कार्य को हल करता है।
.none मोड स्वचालित केस रूपांतरण को पूरी तरह से बंद कर देता है। सभी अक्षर उसी केस में दर्ज किए जाते हैं जिसमें उपयोगकर्ता उन्हें टाइप करता है। यह मोड पासवर्ड फ़ील्ड, ईमेल पते, उपनाम, खोज क्वेरी और किसी भी फ़ील्ड के लिए अनिवार्य है जहाँ केस सर्वर-साइड डेटा प्रोसेसिंग के लिए मायने रखता है।
.words मोड प्रत्येक दर्ज शब्द के पहले अक्षर को कैपिटल करता है। सिस्टम रिक्त स्थान द्वारा शब्द सीमाएँ निर्धारित करता है और स्थान के बाद पहले अक्षर को बड़े अक्षर में बदल देता है। यह मोड नाम, उपनाम, शहर के नाम, सड़क के नाम और अन्य फ़ील्ड के लिए सुविधाजनक है जहाँ प्रत्येक शब्द कैपिटल अक्षर से शुरू होना चाहिए।
.sentences मोड सबसे आम है और अधिकांश टेक्स्ट फ़ील्ड के लिए डिफ़ॉल्ट रूप से उपयोग किया जाता है। सिस्टम बिंदु, विस्मयादिबोधक चिह्न या प्रश्न चिह्न के बाद पहले अक्षर को कैपिटल करता है जिसके बाद स्थान हो। यह मोड नोट्स, संदेशों, टिप्पणियों और अन्य बहु-पंक्ति टेक्स्ट फ़ील्ड के लिए आदर्श है।
.allCharacters मोड सभी दर्ज अक्षरों को कैपिटल में बदल देता है। यह मोड लगातार Caps Lock दबाए रखने के बराबर है और उन फ़ील्ड के लिए उपयोग किया जाता है जहाँ डेटा बड़े अक्षरों में होना चाहिए: डाक कोड, देश कोड, संक्षिप्ताक्षर, ऑर्डर नंबर। सावधानी से उपयोग करें, क्योंकि बड़े अक्षरों में टेक्स्ट पढ़ना मुश्किल होता है।
| मोड | विवरण | इनपुट उदाहरण | अनुशंसा |
|---|---|---|---|
| .none | कोई बदलाव नहीं | ram@mail.com | ईमेल, पासवर्ड, खोज |
| .words | प्रत्येक शब्द | राम शर्मा | नाम, पता, शहर |
| .sentences | वाक्य की शुरुआत | नमस्ते। कैसे हैं आप? | संदेश, नोट्स |
| .allCharacters | सभी कैपिटल | ABC-123 | कोड, इंडेक्स |
ऑटोकैपिटलाइज़ेशन तंत्र की प्रेस प्रोसेसिंग के दौरान सक्रिय होता है, स्क्रीन पर अक्षर प्रदर्शित होने से पहले। जब उपयोगकर्ता एक कुंजी दबाता है, UITextInputTraits वर्तमान कर्सर स्थिति की जाँच करता है और निर्धारित autocapitalizationType के अनुसार केस रूपांतरण नियम लागू करता है।
.sentences मोड के लिए, सिस्टम ट्रिगर वर्णों को ट्रैक करता है: बिंदु (.), विस्मयादिबोधक चिह्न (!), प्रश्न चिह्न (?), और नई पंक्ति वर्ण ( ) जब सक्षम हो। ट्रिगर वर्ण और उसके बाद के स्थान का पता लगाने के बाद, सिस्टम अगले इनपुट वर्ण के लिए “कैपिटल अक्षर अपेक्षित” फ़्लैग सेट करता है।
.words मोड स्थान वर्ण को ट्रिगर के रूप में ट्रैक करता है। प्रत्येक स्थान के बाद, सिस्टम अगले शब्द के लिए कैपिटल अक्षर की अपेक्षा करता है। हालाँकि, अपवाद हैं: हाइफ़न, एपॉस्ट्रॉफ़ी और शब्द के भीतर अन्य विराम चिह्नों के बाद, कैपिटल अक्षर नहीं डाला जाता है। उदाहरण के लिए, “O’Brien” सही रहेगा।
एक महत्वपूर्ण विशेषता यह है कि ऑटोकैपिटलाइज़ेशन केवल शब्द के पहले अक्षर पर काम करता है। यदि उपयोगकर्ता बीच में कैपिटल अक्षरों वाला शब्द दर्ज करता है (जैसे iPhone या macOS), तो सिस्टम उन्हें नहीं बदलता, क्योंकि रूपांतरण केवल ट्रिगर के बाद पहले अक्षर पर लागू होता है। इसका मतलब है कि गैर-मानक केस वाले ब्रांड और उत्पाद के नाम प्रभावित नहीं होंगे।
ऑटोकैपिटलाइज़ेशन को बंद करना चाहिए उन फ़ील्ड में जहाँ सही डेटा प्रोसेसिंग के लिए अक्षर केस मायने रखता है। सामान्य मामले: ईमेल पता फ़ील्ड, उपनाम और उपयोगकर्ता नाम, पासवर्ड, खोज क्वेरी, URL, पुष्टिकरण कोड, IMEI और सीरियल नंबर। इन सभी मामलों में, स्वचालित केस परिवर्तन सर्वर-साइड प्रोसेसिंग के दौरान त्रुटियाँ पैदा करेंगे।
खोज फ़ील्ड (UISearchBar) के लिए, ऑटोकैपिटलाइज़ेशन डिफ़ॉल्ट रूप से बंद होता है, जो उपयोगकर्ता की अपेक्षाओं से मेल खाता है। खोज क्वेरी किसी भी केस में दर्ज की जा सकती है और सर्वर आमतौर पर इसे स्वयं छोटे अक्षरों में बदल लेता है। यदि खोज के लिए ऑटोकैपिटलाइज़ेशन सक्षम किया जाता है, तो उपयोगकर्ता को प्रत्येक क्वेरी की शुरुआत में कैपिटल अक्षर को मैन्युअल रूप से ठीक करना होगा।
पंजीकरण फ़ॉर्म में, उपयोगकर्ता नाम या उपनाम फ़ील्ड में .none मोड होना चाहिए, क्योंकि कई सिस्टम उपयोगकर्ता नामों में केस में अंतर करते हैं। ईमेल फ़ील्ड भी ऑटोकैपिटलाइज़ेशन के बिना होना चाहिए — हालाँकि डोमेन नाम केस-संवेदनशील नहीं होते, ईमेल का स्थानीय भाग सैद्धांतिक रूप से केस-संवेदनशील हो सकता है, हालाँकि व्यवहार में यह दुर्लभ है।
Apple Developer Documentation के अनुसार, secureTextEntry (पासवर्ड) वाले फ़ील्ड स्वचालित रूप से autocapitalizationType = .none प्राप्त करते हैं, भले ही डेवलपर ने स्पष्ट रूप से कोई अन्य मान सेट किया हो। सिस्टम के पास सुरक्षित इनपुट के लिए सर्वोच्च प्राथमिकता है और वह पासवर्ड फ़ील्ड के लिए ऑटोकैपिटलाइज़ेशन सक्षम करने के किसी भी प्रयास को अनदेखा करता है।
Swift में ऑटोकैपिटलाइज़ेशन कॉन्फ़िगर करना autocapitalizationType प्रॉपर्टी के माध्यम से किया जाता है। यह प्रॉपर्टी UITextField, UITextView और UISearchBar के लिए उपलब्ध है। मान को कोड में और Interface Builder के माध्यम से एट्रीब्यूट इंस्पेक्टर में सेट किया जा सकता है, जहाँ मोड को Capitalization कहा जाता है।
let nameField = UITextField()
nameField.autocapitalizationType = .words
let emailField = UITextField()
emailField.autocapitalizationType = .none
संपर्क फ़ॉर्म के लिए, प्रत्येक फ़ील्ड को उसकी शब्दार्थ के अनुसार कॉन्फ़िगर करें: नाम — .words, ईमेल — .none, संदेश — .sentences। यह संयोजन सबसे अच्छा उपयोगकर्ता अनुभव प्रदान करता है और मैन्युअल केस सुधार की आवश्यकता को कम करता है।
class ContactFormViewController: UIViewController {
@IBOutlet var nameField: UITextField!
@IBOutlet var emailField: UITextField!
@IBOutlet var messageView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
nameField.autocapitalizationType = .words
emailField.autocapitalizationType = .none
messageView.autocapitalizationType = .sentences
}
}
रनटाइम पर प्रोग्रामेटिक मोड परिवर्तन के लिए, UITextFieldDelegate डेलीगेट का उपयोग करें। उदाहरण के लिए, यदि कोई फ़ील्ड विभिन्न संदर्भों में उपयोग किया जा सकता है, तो फ़ॉर्म के वर्तमान संचालन मोड के अनुसार textFieldDidBeginEditing विधि में autocapitalizationType बदलें।
func textFieldDidBeginEditing(_ textField: UITextField) {
if textField === codeField {
textField.autocapitalizationType = .allCharacters
}
}
ऑटोकैपिटलाइज़ेशन उपयोगकर्ता के कीबोर्ड पर सेट इनपुट भाषा पर निर्भर करता है। विभिन्न भाषाओं में केस रूपांतरण के अलग-अलग नियम हो सकते हैं। उदाहरण के लिए, तुर्की में, अक्षर “i” बड़े केस में “İ” (बिंदु के साथ) बन जाता है, जबकि “I” छोटे केस में “ı” (बिंदु के बिना) बन जाता है। iOS इन विशेषताओं को स्वचालित रूप से संभालता है।
रूसी के लिए, ऑटोकैपिटलाइज़ेशन अंग्रेज़ी के समान नियमों का पालन करता है: बिंदु के बाद कैपिटल अक्षर, वाक्य की शुरुआत में और नई पंक्ति के बाद। अक्षर “yo” के साथ समस्याएँ उत्पन्न हो सकती हैं — हालाँकि यह सिस्टम शब्दकोश में मौजूद है, सभी कीबोर्ड लेआउट इसे मुख्य परत पर प्रदर्शित नहीं करते, और ऑटोकैपिटलाइज़ेशन “yo” को “Yo” में सही ढंग से बदल देता है।
चीनी, जापानी और कोरियाई के लिए, ऑटोकैपिटलाइज़ेशन लागू नहीं होता, क्योंकि इन भाषाओं में केस की कोई अवधारणा नहीं है। संबंधित कीबोर्ड का उपयोग करते समय सिस्टम द्वारा autocapitalizationType मोड को अनदेखा किया जाता है, और फ़ील्ड निर्धारित मान की परवाह किए बिना .none मोड की तरह व्यवहार करता है।
अरबी और हिब्रू के लिए, ऑटोकैपिटलाइज़ेशन भी लागू नहीं होता, क्योंकि ये भाषाएँ छोटे और बड़े अक्षरों में अंतर किए बिना अपनी स्वयं की लेखन प्रणाली का उपयोग करती हैं। iOS सिस्टम इनपुट भाषा का सही ढंग से पता लगाता है और उन भाषाओं के लिए ऑटोकैपिटलाइज़ेशन सेटिंग्स को अनदेखा करता है जहाँ यह अवधारणा मौजूद नहीं है।
अक्सर पूछे जाने वाले प्रश्न
हाँ, autocapitalizationType प्रॉपर्टी को किसी भी समय बदला जा सकता है, भले ही फ़ील्ड पहले से सक्रिय हो। परिवर्तन अगले अक्षर इनपुट पर प्रभावी होगा।
हाँ, isSecureTextEntry = true वाले फ़ील्ड के लिए, सिस्टम स्वचालित रूप से autocapitalizationType = .none सेट करता है। इस व्यवहार को प्रोग्रामेटिक रूप से बदला नहीं जा सकता।
हाँ, UITextView autocapitalizationType को पूरी तरह से समर्थन करता है। यह विशेष रूप से बहु-पंक्ति फ़ील्ड के लिए उपयोगी है जहाँ .sentences मोड सबसे स्वाभाविक रूप से काम करता है।
यदि कोई फ़ील्ड secureTextEntry के रूप में चिह्नित नहीं है लेकिन पासवर्ड इनपुट के लिए उपयोग किया जाता है, तो ऑटोकैपिटलाइज़ेशन पासवर्ड बदल सकता है। हमेशा उन फ़ील्ड के लिए इसे बंद करें जहाँ केस मायने रखता है।
सिम्युलेटर पर, ऑटोकैपिटलाइज़ेशन Mac हार्डवेयर कीबोर्ड के माध्यम से काम करता है और अलग व्यवहार कर सकता है। सही व्यवहार के लिए वास्तविक डिवाइस पर परीक्षण करें।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें