Autocorrection — mohiyati, mexanizmlari va UITextAutocorrectionType

Muallif: IT Sectr Nashr etilgan: 2026-07-08 O'qish vaqti: 7 daq

Autocorrection bu iOS-ga o'rnatilgan mexanizm bo'lib, matn kiritishda imlo xatolarini avtomatik tuzatadi. UIKit autocorrectionType xususiyati orqali UITextInputTraits protokolida avtokorreksiya xatti-harakatini boshqaradi va uchta rejimni qo'llab-quvvatlaydi: standart, yoqilgan va o'chirilgan. Apple Text Programming Guide (2025) ma'lumotlariga ko'ra, avtokorreksiya kiritilgan matnni tizim lug'ati va qurilmadagi mashina o'rganishi asosida tahlil qiladi. Har bir matn maydoni uchun autocorrectionType ni alohida ishlating — bu xatti-harakatni kiritilayotgan ma'lumotlarning xususiyatiga moslashtirish imkonini beradi.

Asosiy ma'lumotlar

  • Autocorrection — matn terishda imlo xatolarini avtomatik tuzatish uchun iOS tizim mexanizmi
  • UITextAutocorrectionType har bir maydon uchun alohida .default, .yes va .no rejimlarini qo'llab-quvvatlaydi
  • Lug'at avtokorreksiyasi iOS tizim lug'ati va qurilmada o'qitilgan til modeli asosida quriladi
  • Safe Keyboard — parol va moliyaviy ma'lumotlar maydonlari uchun avtokorreksiyani o'chiruvchi himoyalangan klaviatura
  • Lokalizatsiya — avtokorreksiya qo'shimcha tartiblarni ham o'z ichiga olgan barcha qo'llab-quvvatlanadigan klaviatura tillari uchun ishlaydi

Autocorrection nima?

Autocorrection (avtokorreksiya) — iOS operatsion tizimining imlo xatosi aniqlanganda kiritilgan so'zlarni taxminiy to'g'ri variantlar bilan avtomatik almashtiruvchi funksiyasi. Mexanizm UIKit matn maydonlari darajasida ishlaydi va standart UITextField va UITextView kiritish elementlaridan foydalanadigan barcha ilovalarda mavjud.

Avtokorreksiyaning asosida har bir qo'llab-quvvatlanadigan til uchun millionlab matn namunalari asosida o'qitilgan til modeli yotadi. Model to'liq qurilmada (on-device) ishlaydi, bu kiritilgan ma'lumotlarning maxfiyligini kafolatlaydi — matn tahlil uchun Apple serverlariga yuborilmaydi. Har bir iOS yangilanishi bilan model aniqlashtiriladi va yangi so'zlar va qoidalar bilan kengaytiriladi.

Avtokorreksiya, dasturchi uni aniq o'chirmagan bo'lsa, barcha matn maydonlari uchun avtomatik faollashadi. Foydalanuvchi avtokorreksiyani tizim sozlamalarida (Sozlamalar > Umumiy > Klaviatura > Avtokorreksiya) butunlay o'chirishi mumkin, ammo dasturchi ham autocorrectionType xususiyati orqali alohida maydonlar uchun bu xatti-harakatni boshqarishi mumkin.

WWDC 2023 Session 204 ma'lumotlariga ko'ra, Apple faqat oxirgi so'zni emas, balki butun gapning kontekstini hisobga oladigan Transformer asosidagi takomillashtirilgan avtokorreksiya til modelini taqdim etdi. Bu n-gram asosidagi oldingi modelga nisbatan soxta tuzatishlar sonini 30% ga kamaytirish imkonini berdi.

iOS-da avtokorreksiya rejimlari

UITextAutocorrectionType ma'lum bir matn maydoni uchun avtokorreksiya xatti-harakatini belgilaydigan uch qiymatli sanab o'tishdir. Har bir qiymat Interface Builder va maydon yaratilganda kodda mavjud bo'lgan autocorrectionType xususiyati orqali o'rnatiladi.

.default rejimi

.default qiymati maydon klaviaturaning tizim parametrlaridan global avtokorreksiya sozlamasini meros olishini anglatadi. Bu rejim foydalanuvchining tanlovini hurmat qilgani uchun aksariyat matn maydonlari uchun tavsiya etiladi. Agar foydalanuvchi sozlamalarda avtokorreksiyani o'chirgan bo'lsa, .default maydoni ham undan foydalanmaydi.

.yes rejimi

.yes qiymati tizim sozlamasidan qat'i nazar, maydon uchun avtokorreksiyani majburiy faollashtiradi. Bu rejim faqat imlo aniqligi muhim bo'lgan maydonlarda — masalan, matn muharrirlari, eslatma yoki xabar maydonlarida qo'llanilishi kerak. Apple .yes ni ehtiyotkorlik bilan qo'llashni tavsiya qiladi, chunki majburiy faollashtirish foydalanuvchi kutganiga zid kelishi mumkin.

.no rejimi

.no qiymati ma'lum bir maydon uchun avtokorreksiyani o'chiradi. Bu rejim parol maydonlari (secure text entry), elektron pochta manzillari, tasdiqlash kodlari va qidiruv so'rovlari uchun majburiydir. Bu maydonlarda avtokorreksiya nafaqat foydasiz, balki zararli ham — to'g'ri kiritilgan ma'lumotlarni xatolilar bilan almashtirishi mumkin.

RejimQiymatTavsiya
.defaultTizim sozlamasini meros oladiAksariyat kiritish maydonlari
.yesMajburiy faolMatn muharrirlari, eslatmalar
.noMajburiy o'chirilganParollar, email, qidiruv, kodlar

Til modeli va lug'at

iOS avtokorreksiyasining til modeli statik lug'at va dinamik o'rganiladigan modelning kombinatsiyasidan foydalanadi. Tizim lug'ati har bir til uchun eng ko'p ishlatiladigan so'zlarni o'z ichiga oladi, Transformer asosidagi til modeli esa kontekst va almashtirish ehtimolini tahlil qiladi. Model foydalanuvchi kiritgan matnlar asosida qurilmada o'rganiladi.

Foydalanuvchi klaviatura sozlamalari (Sozlamalar > Umumiy > Klaviatura > Matnni almashtirish) orqali shaxsiy lug'atga so'zlar qo'shishi mumkin. Qo'shilgan so'zlar iCloud-da saqlanadi va bir xil Apple ID orqali qurilmalar o'rtasida sinxronlanadi. Tizim shaxsiy lug'atdagi so'zlarni tuzatmaydi, bu nomlar, brendlar va texnik atamalar uchun qulaydir.

Maxsus sohalar — tibbiy, huquqiy, texnik — uchun standart lug'at yetarli atamalarni o'z ichiga olmasligi mumkin. Bunday ilovalarda tegishli maydonlar uchun avtokorreksiyani o'chirish yoki iOS 17+ uchun UIResponder metodining .replacementDictionary orqali maxsus matn almashtirishdan foydalanish tavsiya etiladi.

Apple Machine Learning Research (2024) ma'lumotlariga ko'ra, Transformer arxitekturasiga asoslangan yangi avtokorreksiya modeli 10 token gacha kontekstni qayta ishlaydi (oldingi modelda 3 token), bu foydalanuvchi niyatini aniqroq aniqlash imkonini beradi. Model nafaqat imloni, balki gapning grammatik tuzilishini ham hisobga oladi.

Safe Keyboard va maxfiy ma'lumotlar

Safe Keyboard secureTextEntry = true bo'lgan maydonlar uchun avtomatik faollashadigan himoyalangan kiritish rejimidir. Bu rejimda avtokorreksiya, avtokapitalizatsiya va prediktiv kiritish autocorrectionType qiymatlaridan qat'i nazar, tizim tomonidan o'chiriladi. Tizim shuningdek, shaxsiy lug'at va matn almashtirishlarga kirishni bloklaydi.

Safe Keyboard avtokorreksiya mexanizmlari orqali kiritilgan ma'lumotlarning sizib chiqishining oldini oladi. Agar avtokorreksiya parol maydoni uchun faol bo'lsa, tizim kiritilgan parolni shaxsiy lug'atda saqlashi yoki modelni o'qitish uchun Apple serverlariga yuborishi mumkin edi. Safe Keyboard maxfiy ma'lumotlarning ilova chegarasidan tashqariga chiqmasligini kafolatlaydi.

Moliyaviy ilovalar uchun Safe Keyboard faqat secureTextEntry bo'lgan maydonlar uchun avtomatik faollashadi. Karta raqamlari, amal qilish muddati va CVV kodlarini kiritish maydonlari uchun dasturchi qo'lda autocorrectionType = .no va keyboardType = .numberPad yoki .phonePad o'rnatib, avtokorreksiyani o'chirishi kerak.

iOS 17 dan boshlab Safe Keyboard uchinchi tomon klaviaturalari orqali tutib qolishdan himoyani qo'llab-quvvatlaydi. Agar foydalanuvchi App Store dan klaviatura o'rnatgan bo'lsa, secureTextEntry faollashganda tizim klaviaturasi avtomatik ravishda uchinchi tomon klaviaturasini almashtiradi, hatto u standart tanlangan bo'lsa ham. Bu parollarning faqat xavfsiz tizim klaviaturasi orqali kiritilishini ta'minlaydi.

Swift kodi orqali sozlash

Swift-da avtokorreksiyani boshqarish UITextField va UITextView obyektlarining autocorrectionType xususiyati orqali amalga oshiriladi. Xususiyat ham o'qish, ham yozish uchun mavjud va kiritish kontekstiga qarab dinamik o'zgartirilishi mumkin. Interface Builder orqali sozlash atributlar inspektorida Correction nomi ostida mavjud.

swift
let textField = UITextField()
textField.autocorrectionType = .no

Kirish formasi uchun avtokorreksiya parol maydoni uchun o'chirilishi va login maydoni uchun standart holatda qoldirilishi kerak. Elektron pochta maydoni ham avtokorreksiyasiz qoldirilishi tavsiya etiladi, chunki @ belgisi va domen nomlari ko'pincha noto'g'ri almashtiriladi. Username maydoni uchun avtokorreksiya faol bo'lishi mumkin, agar username o'qiladigan so'z bo'lsa.

swift
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 uchun avtokorreksiya sozlamasi xuddi shunday amalga oshiriladi. Bu, ayniqsa, avtokorreksiya eng ko'p foyda keltiradigan, lekin texnik atamalar yoki kod kiritishda noqulaylik tug'dirishi mumkin bo'lgan ko'p qatorli sharh, xabar va eslatma maydonlari uchun muhimdir.

swift
let textView = UITextView()
textView.autocorrectionType = .default

Dinamik o'zgartirish uchun UITextFieldDelegate delegatidan foydalaning. textFieldDidBeginEditing metodi maydon faollashganda chaqiriladi va unda joriy kontekst yoki ilova ishlashi davomida o'zgarishi mumkin bo'lgan maydon rolidan kelib chiqib, autocorrectionType o'zgartirilishi mumkin.

Avtokorreksiyani qachon o'chirish kerak

Avtokorreksiya o'chirilishi kerak kiritilgan ma'lumotlarning aniqligi muhim bo'lgan va tizim foydalanuvchi niyatini to'g'ri aniqlay olmaydigan maydonlarda. Asosiy holatlar: parol va maxfiy ma'lumot maydonlari, elektron pochta manzili maydonlari, qidiruv satrlari, kod va dastur kodi kiritish maydonlari, shuningdek, nostandart ma'lumot formatlari bo'lgan maydonlar.

Qidiruv satrlari (UISearchBar) uchun avtokorreksiya standart holatda o'chirilgan, bu foydalanuvchi kutganiga mos keladi. Qidirishda foydalanuvchi to'liq bo'lmagan so'zlar, texnik atamalar yoki turli tillardagi so'rovlarni kiritishi mumkin va avtokorreksiya faqat xalaqit beradi. Xuddi shunday URL va domen nomlari maydonlari uchun ham.

Messengerlar va muloqot ilovalarida avtokorreksiya odatda faol, ammo jargon, qisqartmalar va norasmiy lug'at kiritishda noqulaylik tug'dirishi mumkin. Bunday hollarda foydalanuvchi klaviatura sozlamalari orqali avtokorreksiyani o'chirishi mumkin yoki dasturchi to'g'ridan-to'g'ri ilova interfeysida kalitni taqdim etishi mumkin.

Apple Human Interface Guidelines ga ko'ra, avtokorreksiya kiritilgan ma'lumotlar tizim lug'atida topilmasligi mumkin bo'lgan har qanday maydon uchun o'chirilishi kerak: buyurtma raqamlari, bron kodlari, identifikatorlar, IMEI, MAC manzillari. Agar maydon nostandart formatda alifbo-raqamli ma'lumotlarni qabul qilsa — avtokorreksiyani o'chiring.

Tez-tez so'raladigan savollar

Butun ilovada avtokorreksiyani qanday butunlay o'chirish mumkin?

Ilova uchun global avtokorreksiyani o'chirish mavjud emas. Har bir matn maydoni uchun alohida autocorrectionType = .no o'rnatish yoki qiymati qayta yozilgan UITextField ost sinfini yaratish kerak.

Nima uchun avtokorreksiya simulyatorda ishlamaydi?

Simulyator Mac klaviaturasidan soddalashtirilgan kiritish modelidan foydalanadi. Simulyatorda avtokorreksiyaning til modeli faol emas — testlash uchun haqiqiy qurilmadan foydalaning.

Shaxsiy lug'atga so'zni qanday qo'shish mumkin?

Foydalanuvchi Sozlamalar > Umumiy > Klaviatura > Matnni almashtirish orqali so'z qo'shishi mumkin. Ilova uchun tizim avtokorreksiya lug'atiga dasturiy ravishda so'z qo'shish uchun API mavjud emas.

keyboardType sozlamasi avtokorreksiyani o'chiradimi?

Yo'q, keyboardType avtokorreksiyaga ta'sir qilmaydi. Hatto .numberPad klaviaturasi uchun ham avtokorreksiya faol bo'lishi mumkin, agar autocorrectionType orqali aniq o'chirilmagan bo'lsa.

Uchinchi tomon klaviaturalari uchun avtokorreksiya ishlaydimi?

Uchinchi tomon klaviaturalari o'zlarining avtokorreksiya mexanizmlariga ega va tizim UITextAutocorrectionType dan foydalanmaydi. Xatti-harakat muayyan klaviaturaning amalga oshirilishiga bog'liq.

Xulosa

  • Autocorrection — matn maydonlarida imlo xatolarini avtomatik tuzatish uchun iOS tizim funksiyasi
  • Uch rejim UITextAutocorrectionType: .default (sozlamalarni meros oladi), .yes (faol), .no (o'chirilgan)
  • Transformer til modeli 10 token gacha kontekstni qayta ishlaydi va to'liq qurilmada ishlaydi
  • Safe Keyboard secureTextEntry = true bo'lgan maydonlar uchun avtokorreksiyani avtomatik o'chiradi
  • Avtokorreksiya foydasiz parol, email, kod, qidiruv va nostandart ma'lumot formatlari maydonlari uchun
  • Sozlash har bir maydon uchun alohida autocorrectionType xususiyati orqali amalga oshiriladi
  • Tavsiya — avtokorreksiya xatti-harakatini faol til modeli bo'lgan haqiqiy qurilmada sinab ko'ring

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing