স্বয়ংক্রিয় সংশোধন হল 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 আর্কিটেকচারের উপর ভিত্তি করে নতুন স্বয়ংক্রিয় সংশোধন মডেল ১০টি প্রসঙ্গ টোকেন পর্যন্ত প্রক্রিয়া করে (পূর্ববর্তী মডেলে ৩টি টোকেনের তুলনায়), যা ব্যবহারকারীর উদ্দেশ্য আরও নির্ভুলভাবে নির্ধারণ করতে দেয়। মডেলটি শুধু বানান নয়, বাক্যের ব্যাকরণগত গঠনও বিবেচনা করে।
Safe Keyboard হল একটি সুরক্ষিত ইনপুট মোড যা secureTextEntry = true সহ ফিল্ডের জন্য স্বয়ংক্রিয়ভাবে সক্রিয় হয়। এই মোডে, স্বয়ংক্রিয় সংশোধন, স্বয়ংক্রিয় ক্যাপিটালাইজেশন এবং ভবিষ্যদ্বাণীমূলক ইনপুট সিস্টেম দ্বারা নিষ্ক্রিয় করা হয়, স্বয়ংক্রিয় সংশোধন টাইপের সেট মান নির্বিশেষে। সিস্টেম ব্যবহারকারীর অভিধান এবং টেক্সট রিপ্লেসমেন্টে অ্যাক্সেসও ব্লক করে।
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 অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন