آٹو کیپٹلائزیشن 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 | کوئی تبدیلی نہیں | ahmad@mail.com | ای میل، پاس ورڈ، تلاش |
| .words | ہر لفظ | احمد حسین | نام، پتہ، شہر |
| .sentences | جملے کا آغاز | السلام علیکم۔ کیسے ہیں؟ | پیغامات، نوٹس |
| .allCharacters | تمام بڑے حروف | ABC-123 | کوڈ، انڈیکس |
آٹو کیپٹلائزیشن کا طریقہ کار کی پریس پروسیسنگ کے دوران، اسکرین پر حرف ظاہر ہونے سے پہلے فعال ہوتا ہے۔ جب صارف ایک کی دباتا ہے، UITextInputTraits موجودہ کرسر پوزیشن چیک کرتا ہے اور مقرر کردہ autocapitalizationType کے مطابق حرف کی تبدیلی کا اصول لاگو کرتا ہے۔
.sentences موڈ کے لیے، نظام محرک حروف کو ٹریک کرتا ہے: نقطہ (.)، فجائیہ علامت (!)، سوالیہ علامت (?)، اور فعال ہونے پر نئی لائن کا حرف ( )۔ ایک محرک حرف اور اس کے بعد خلا کا پتہ لگانے کے بعد، نظام اگلے ان پٹ حرف کے لیے «بڑے حرف کی توقع» کا جھنڈا لگاتا ہے۔
.words موڈ خلا کے حرف کو محرک کے طور پر ٹریک کرتا ہے۔ ہر خلا کے بعد، نظام اگلے لفظ کے لیے بڑے حرف کی توقع کرتا ہے۔ تاہم، مستثنیات ہیں: ہائفن، اپاسٹروفی اور لفظ کے اندر دیگر اوقاف کے نشانات کے بعد، بڑا حرف نہیں ڈالا جاتا۔ مثال کے طور پر، «O’Brien» درست رہتا ہے۔
ایک اہم خصوصیت یہ ہے کہ آٹو کیپٹلائزیشن صرف لفظ کے پہلے حرف پر کام کرتی ہے۔ اگر صارف درمیان میں بڑے حروف والا لفظ درج کرتا ہے (مثلاً iPhone یا macOS)، تو نظام انہیں تبدیل نہیں کرتا، کیونکہ تبدیلی صرف محرک کے بعد پہلے حرف پر لاگو ہوتی ہے۔ اس کا مطلب ہے کہ غیر معیاری حرف والے برانڈ اور مصنوعات کے نام متاثر نہیں ہوں گے۔
آٹو کیپٹلائزیشن کو غیر فعال کرنا چاہیے ان فیلڈز میں جہاں ڈیٹا کی صحیح پروسیسنگ کے لیے حرف کی اہمیت ہو۔ عام معاملات: ای میل پتہ فیلڈز، عرفی نام اور صارف نام، پاس ورڈ، تلاش کے سوالات، URLs، تصدیقی کوڈ، IMEI اور سیریل نمبر۔ ان تمام معاملات میں، خودکار حرف کی تبدیلی سرور سائیڈ پروسیسنگ کے دوران خرابیاں پیدا کرے گی۔
تلاش کے فیلڈز (UISearchBar) کے لیے، آٹو کیپٹلائزیشن ڈیفالٹ طور پر غیر فعال ہے، جو صارف کی توقعات سے مطابقت رکھتا ہے۔ تلاش کا سوال کسی بھی حرف میں درج کیا جا سکتا ہے اور سرور عام طور پر اسے خود بخود چھوٹے حروف میں تبدیل کرتا ہے۔ اگر تلاش کے لیے آٹو کیپٹلائزیشن فعال کی جاتی ہے تو صارف کو ہر سوال کے شروع میں بڑے حرف کو دستی طور پر درست کرنا پڑے گا۔
رجسٹریشن فارمز میں، صارف نام یا عرفی نام کے فیلڈ میں .none موڈ ہونا چاہیے، کیونکہ بہت سے نظام صارف ناموں میں حرف میں فرق کرتے ہیں۔ ای میل فیلڈ بھی آٹو کیپٹلائزیشن کے بغیر ہونا چاہیے — اگرچہ ڈومین نام حرف کے لیے حساس نہیں ہوتے، ای میل کا مقامی حصہ نظریاتی طور پر حساس ہو سکتا ہے، حالانکہ عملی طور پر یہ نایاب ہے۔
Apple ڈویلپر دستاویزات کے مطابق، 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 ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں