Text Content Type ایک iOS طریقہ کار ہے جو نظام کو بتاتا ہے کہ ٹیکسٹ فیلڈ کس ڈیٹا کی توقع رکھتا ہے۔ UIKit ان پٹ فیلڈز کو نشان زد کرنے کے لیے UITextContentType مستقل فراہم کرتا ہے: ای میل، پاس ورڈ، فون، صارف نام اور درجنوں دیگر معنوی اقسام۔ Apple Human Interface Guidelines (2025) کے مطابق، درست مواد کی قسم کی ترتیب خودکار پُرکاری اور انکولی کی بورڈ کی بدولت فارم بھرنے کی رفتار میں 40% اضافہ کرتی ہے۔ ہر ٹیکسٹ فیلڈ میں UITextContentType استعمال کریں — یہ صارف کے تجربے کو بہتر بناتا ہے اور ان پٹ کی غلطیوں کو کم کرتا ہے۔
اہم نکات
Text Content Type (UITextContentType) UIKit ٹیکسٹ فیلڈز کی ایک خاصیت ہے جو iOS کو بتاتی ہے کہ ان پٹ فیلڈ کس معنوی ڈیٹا کی توقع رکھتا ہے۔ نظام اس معلومات کو دو مقاصد کے لیے استعمال کرتا ہے: مناسب کی بورڈ ترتیب کا انتخاب اور کلیدی زنجیر (iCloud Keychain) سے خودکار پُرکاری کے طریقہ کار کو فعال کرنا۔
iOS 5 نے معنوی اقسام کا پہلا ورژن متعارف کرایا، اور iOS 17 میں UITextContentType سیٹ 34 مستقلوں تک پھیل گیا، جس میں ایک بار استعمال ہونے والے کوڈز، ڈاک کوڈز اور گلیوں کے ناموں کے لیے نئی اقسام شامل ہیں۔ ہر مستقل ایک سٹرنگ کی نمائندگی کرتا ہے جسے نظام اندرونی پروسیسنگ قواعد سے ملاتا ہے۔
یہ طریقہ کار UITextInputTraits سطح پر کام کرتا ہے — ایک پروٹوکول جو UITextField، UITextView اور UISearchBar کو وراثت میں ملتا ہے۔ اس کا مطلب ہے کہ مواد کی قسم بغیر اضافی ترتیب کے تمام معیاری ان پٹ عناصر میں دستیاب ہے۔
WWDC 2024 سیشن 101 کے مطابق، Apple انٹرفیس میں ہر ٹیکسٹ فیلڈ کے لیے مواد کی قسم بتانے کی سفارش کرتا ہے — چاہے خودکار پُرکاری کی توقع نہ ہو۔ مارک اپ خود VoiceOver کو معذور صارفین کے لیے فیلڈ کے مقصد کا صحیح اعلان کرنے میں مدد کرتا ہے۔
UIKit زمروں میں تقسیم شدہ اقسام کا ایک درجہ بندی فراہم کرتا ہے۔ اہم گروہوں میں شناختی ڈیٹا (نام، کنیت، صارف نام)، رابطہ کی معلومات (ای میل، فون، پتہ) اور اسناد (پاس ورڈ، ایک بار کا کوڈ) شامل ہیں۔ ہر گروہ مختلف خودکار پُرکاری کے طریقہ کار کو فعال کرتا ہے۔
رابطہ کی اقسام کے گروہ میں `.emailAddress`، `.telephoneNumber`، `.fullStreetAddress` اور `.city` شامل ہیں۔ یہ اقسام رابطوں اور iCloud Keychain سے خودکار پُرکاری کو فعال کرتی ہیں۔ `.emailAddress` قسم کا فیلڈ خود بخود پہلے درج کردہ ای میل پتوں کی تجویز دیتا ہے، جبکہ `.telephoneNumber` ایڈریس بک سے فون نمبر تجویز کرتا ہے۔
لاگ ان فیلڈز کے لیے .username، .password اور .newPassword مخصوص ہیں۔ .username قسم iCloud پاس ورڈ مینیجر کو فعال کرتی ہے، جو محفوظ کردہ اسناد پیش کرتا ہے۔ .newPassword قسم کا فیلڈ پہلے ان پٹ پر iCloud Keychain کے ذریعے مضبوط پاس ورڈ جنریشن شروع کرتا ہے۔
iOS 17 سے شروع کرتے ہوئے، Apple نے SMS تصدیقی کوڈز کے لیے .oneTimeCode اور پارسل ٹریکنگ کے لیے .shipmentTrackingNumber شامل کیا۔ .oneTimeCode قسم پیغامات سے کوڈز کو خود بخود پہچانتی ہے اور پیغامات ایپ کھولنے کی ضرورت کے بغیر QuickType بار میں پیش کرتی ہے۔
| زمرہ | اقسام | iOS |
|---|---|---|
| شناخت | .name, .givenName, .familyName, .nickname | 5+ |
| رابطے | .emailAddress, .telephoneNumber, .fullStreetAddress | 5+ |
| اسناد | .username, .password, .newPassword | 5+ |
| مقام | .location, .city, .state, .postalCode | 10+ |
| کارڈ کا ڈیٹا | .creditCardNumber, .creditCardSecurityCode | 12+ |
| ایک بار کے کوڈ | .oneTimeCode | 17+ |
ہر قسم ایک سٹرنگ مستقل کے ذریعے ظاہر ہوتی ہے، لیکن ان کا موازنہ rawValue کے بجائے == آپریٹر کے ذریعے کیا جانا چاہیے۔ iOS مستقبل کے ورژنز میں نئی اقسام شامل کر سکتا ہے، لہذا switch-case بیانات میں ہمیشہ default شاخ استعمال کریں۔
UIKeyboardType اور UITextContentType مل کر کام کرتے ہیں: کی بورڈ کی قسم کی بورڈ کی ترتیب کا تعین کرتی ہے، جبکہ مواد کی قسم QuickType بار میں اضافی بٹن شامل کرتی ہے۔ اگر مواد کی قسم مقرر کی گئی ہے، تو iOS بہترین ان پٹ کے لیے کی بورڈ کی قسم کو اوور رائڈ کر سکتا ہے۔ مثال کے طور پر، `.emailAddress` قسم کے ساتھ، کی بورڈ خود بخود اہم پرت پر @ علامت دکھاتا ہے۔
.telephoneNumber قسم کے فیلڈ کے لیے، iOS مقرر کردہ کی بورڈ قسم سے قطع نظر کی بورڈ کو فون کی ترتیب پر سوئچ کر دیتا ہے۔ اس رویے کو غیر فعال نہیں کیا جا سکتا — نظام مواد کی قسم کی ترجیح کو واضح کی بورڈ ترتیب سے زیادہ سمجھتا ہے۔ ڈویلپرز کو دونوں خصوصیات ترتیب دینے کی ضرورت نہیں ہے۔
.URL اور .emailAddress اقسام کی بورڈ میں بالترتیب .com اور @ بٹن شامل کرتی ہیں۔ .creditCardNumber مواد کی قسم کے ساتھ .decimalPad قسم اعشاریہ جداکنندہ کے ساتھ ایک عددی کی بورڈ دکھاتی ہے، جو رقم اور کارڈ نمبر درج کرنے کے لیے آسان ہے۔ Apple Human Interface Guidelines کے مطابق، صارفین توقع کرتے ہیں کہ کی بورڈ درج کیے جانے والے ڈیٹا کی قسم سے مطابقت رکھتا ہو، نہ کہ اس کے برعکس۔
ایک استثنا .oneTimeCode ہے — یہ قسم کی بورڈ کی ترتیب نہیں بدلتی لیکن SMS سے کوڈز کے ساتھ QuickType بار کو فعال کرتی ہے۔ صارف کی بورڈ کے اوپر ایک کوڈ تجویز دیکھتا ہے اور ایک ٹیپ سے اسے داخل کر سکتا ہے۔ یہ طریقہ کار صرف ان فیلڈز کے لیے کام کرتا ہے جو SMS موصول ہونے کے بعد first responder بنتے ہیں۔
iOS میں خودکار پُرکاری ان پٹ فیلڈز کو iCloud Keychain اور ASCredentialProviderViewController کے ڈیٹا سے ملانے کے لیے Text Content Type استعمال کرتی ہے۔ نظام اسکرین پر موجود تمام فیلڈز کا تجزیہ کرتا ہے، ان کی معنوی اقسام کا تعین کرتا ہے، اور متعلقہ محفوظ کردہ ڈیٹا پیش کرتا ہے۔ درست طریقے سے بتائی گئی اقسام کے بغیر، خودکار پُرکاری فعال نہیں ہوتی۔
خودکار پُرکاری کے کام کرنے کے لیے، تین شرائط پوری ہونی چاہئیں۔ پہلی، فیلڈ میں ایک درست UITextContentType ہونا چاہیے۔ دوسری، اسکرین میں مختلف اقسام کے کم از کم دو فیلڈز ہونے چاہئیں (مثال کے طور پر، .username اور .password)۔ تیسری، ایپ کو ویب سائٹ کے ساتھ ہم آہنگی کے لیے webcredentials اجازت نامے کے ساتھ Associated Domains کو سپورٹ کرنا چاہیے۔
کلیدی زنجیر (Keychain) محفوظ کردہ ریکارڈز کی درجہ بندی کرنے کے لیے مواد کی قسم استعمال کرتی ہے۔ اگر کسی فیلڈ کو .password کے طور پر نشان زد کیا گیا ہے، تو نظام درج کردہ قیمت کو iCloud Keychain میں محفوظ کرتا ہے اور اگلے لاگ ان پر پیش کرتا ہے۔ .creditCardNumber قسم کے فیلڈز Face ID تصدیق کے بعد خود بخود Wallet میں محفوظ ہو جاتے ہیں۔
.oneTimeCode قسم کے ایک بار استعمال ہونے والے کوڈز کے لیے، iOS 17 نیا AutoFill OTP طریقہ کار استعمال کرتا ہے، جسے براہ راست SMS رسائی کی ضرورت نہیں ہے۔ نظام آپریٹنگ سسٹم کی سطح پر پیغامات سے کوڈز کو روکتا ہے اور ایپ کے ذریعے پیغام کے مواد کو پڑھنے سے گریز کرتے ہوئے QuickType بار کے ذریعے ایپ کو منتقل کرتا ہے۔
Swift میں Text Content Type کی بنیادی ترتیب کوڈ میں textContentType خاصیت کے ذریعے یا Interface Builder کے ذریعے کی جاتی ہے۔ کوڈ میں، ایک مستقل تفویض کرنے میں ایک لائن لگتی ہے، جبکہ IB میں مطلوبہ قسم خصوصیات کے انسپکٹر میں ڈراپ ڈاؤن سے منتخب کی جاتی ہے۔
let emailField = UITextField()
emailField.textContentType = .emailAddress
emailField.placeholder = "example@domain.com"
let passwordField = UITextField()
passwordField.isSecureTextEntry = true
passwordField.textContentType = .newPassword
خودکار پُرکاری کے ساتھ پروگرام کے ذریعے لاگ ان فارم بنانے کے لیے، مختلف مواد کی اقسام والے دونوں فیلڈز استعمال کریں۔ نظام خود بخود انہیں لاگ ان اور پاس ورڈ کے طور پر جوڑ دیتا ہے۔ اگر ایپ بائیو میٹرک لاگ ان کو سپورٹ کرتی ہے، تو درست اکاؤنٹ کی پہچان کے لیے .username قسم کا فیلڈ شامل کریں۔
class LoginViewController: UIViewController {
@IBOutlet var usernameField: UITextField!
@IBOutlet var passwordField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
usernameField.textContentType = .username
passwordField.textContentType = .password
passwordField.autocorrectionType = .no
}
}
SMS سے ایک بار استعمال ہونے والے کوڈ کے ان پٹ فیلڈ کے لیے، .oneTimeCode قسم بتائیں۔ نظام اسے موصول ہونے کے بعد QuickType بار میں خود بخود کوڈ تجویز کرے گا۔ ڈویلپر کو SMS پڑھنے کی اجازت مانگنے یا اپنی مرضی کے مطابق پیغام کا تجزیہ کرنے کی ضرورت نہیں ہے۔
let otpField = UITextField()
otpField.textContentType = .oneTimeCode
otpField.keyboardType = .numberPad
otpField.placeholder = "Code from SMS"
iOS 17+ کے لیے، .oneTimeCode قسم فیلڈ فوکس کے بغیر خودکار پُرکاری کو سپورٹ کرتی ہے۔ اگر صارف کوڈ کے ساتھ SMS وصول کرتا ہے، تو iOS اسے لاک اسکرین پر پیش کرتا ہے، اور انلاک کرنے کے بعد، کوڈ خود بخود متعلقہ مواد کی قسم والے فعال فیلڈ میں داخل ہو جاتا ہے۔
درست قسم کا انتخاب براہ راست فارم کی تبدیلی اور صارف کے تجربے کو متاثر کرتا ہے۔ Apple دستیاب سب سے مخصوص قسم بتانے کی سختی سے سفارش کرتا ہے۔ مثال کے طور پر، نام کے فیلڈ کے لیے عام .name کی بجائے .givenName استعمال کریں — یہ نظام کو رابطوں سے درست نام کے ساتھ خودکار پُرکاری تجویز کرنے کی اجازت دیتا ہے۔
ایک عام غلطی سے بچیں — صارف نام کے فیلڈ کے لیے .emailAddress مقرر کرنا۔ اگر ایپ ای میل کو لاگ ان کے طور پر استعمال کرتی ہے، تو لاگ ان فیلڈ کے لیے .username اور پاس ورڈ فیلڈ کے لیے .password بتائیں۔ .emailAddress قسم صرف شناخت کنندہ کے طور پر نہیں بلکہ رابطہ ڈیٹا کے طور پر ای میل ان پٹ کے لیے مخصوص ہے۔
ایک ہی قسم کے متعدد فیلڈز والے فارمز کے لیے (مثال کے طور پر، دو ای میل پتے)، ہر فیلڈ کے لیے .textContentType خاصیت مقرر کریں لیکن مختلف accessibilityIdentifier اقدار شامل کریں۔ یہ VoiceOver کو فیلڈز کا صحیح اعلان کرنے میں مدد کرتا ہے، اگرچہ خودکار پُرکاری نظام دونوں فیلڈز کے لیے ایک ہی قیمت تجویز کر سکتا ہے۔
بھری ہوئی کلیدی زنجیر کے ساتھ اصلی ڈیوائس پر خودکار پُرکاری کی جانچ کریں۔ سمیلیٹر iCloud Keychain کو مکمل طور پر سپورٹ نہیں کرتا، اور خودکار پُرکاری کا رویہ مختلف ہو سکتا ہے۔ Apple Developer Forums (2025) کے مطابق، سب سے عام خودکار پُرکاری کے مسائل غلط طریقے سے بتائی گئی مواد کی قسم کی وجہ سے پیدا ہوتے ہیں۔
اکثر پوچھے گئے سوالات
UITextContentType معنوی ڈیٹا کی قسم کی وضاحت کرتا ہے، جبکہ UIKeyboardType کی بورڈ کی ترتیب کی وضاحت کرتا ہے۔ مواد کی قسم بہترین ان پٹ کے لیے کی بورڈ کی قسم کو اوور رائڈ کر سکتی ہے۔
خودکار پُرکاری .username، .password، .newPassword، .emailAddress، .telephoneNumber اور .creditCardNumber اقسام سے فعال ہوتی ہے۔ نظام ان اقسام کو کلیدی زنجیر کے ڈیٹا سے ملاتا ہے۔
ہاں، WKWebView autocomplete وصف والے HTML فیلڈز کے لیے Text Content Type کو سپورٹ کرتا ہے۔ iOS خود بخود autocomplete اوصاف کو UITextContentType اقسام سے ملاتا ہے۔
ہاں، UITextView بھی UITextInputTraits کو وراثت میں لیتا ہے اور textContentType خاصیت کو سپورٹ کرتا ہے۔ یہ رابطہ ڈیٹا کی کثیر سطری ان پٹ فیلڈز کے لیے مفید ہے۔
نظام خودکار پُرکاری کے لیے غلط ڈیٹا تجویز کر سکتا ہے یا کچھ بھی تجویز نہیں کر سکتا۔ مثال کے طور پر، .emailAddress قسم والا صارف نام فیلڈ لاگ ان کے بجائے ای میل تجویز کر سکتا ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں