Autocorrection — mahiyyəti, mexanizmləri və UITextAutocorrectionType

Müəllif: IT Sectr Dərc olunub: 2026-07-08 Oxuma vaxtı: 7 dəq

Autocorrection iOS-da mətn daxil edərkən orfoqrafik səhvləri avtomatik düzəldən daxili mexanizmdir. UIKit autocorrectionType xüsusiyyəti vasitəsilə UITextInputTraits protokolunda avtokorreksiya davranışını idarə edir və üç rejimi dəstəkləyir: standart, aktiv və deaktiv. Apple Text Programming Guide (2025) məlumatına görə, avtokorreksiya daxil edilən mətni sistem lüğəti və cihazda maşın öyrənməsi əsasında təhlil edir. Hər mətn sahəsi üçün ayrıca autocorrectionType istifadə edin — bu, davranışı daxil edilən məlumatların xüsusiyyətlərinə uyğunlaşdırmağa imkan verir.

Əsas məqamlar

  • Autocorrection — mətn yazarkən orfoqrafik səhvləri avtomatik düzəltmək üçün iOS-un sistem mexanizmi
  • UITextAutocorrectionType hər sahə üçün fərdi olaraq .default, .yes və .no olmaqla üç rejimi dəstəkləyir
  • Lüğət avtokorreksiyası iOS sistem lüğəti və cihazda öyrədilmiş dil modeli əsasında qurulur
  • Safe Keyboard — parol və maliyyə məlumatları sahələri üçün avtokorreksiyanı söndürən qorunan klaviatura
  • Lokallaşdırma — avtokorreksiya əlavə düzənlər də daxil olmaqla bütün dəstəklənən klaviatura dilləri üçün işləyir

Autocorrection nədir?

Autocorrection (avtokorreksiya) iOS əməliyyat sisteminin orfoqrafik səhv aşkar edildikdə daxil edilmiş sözləri ehtimal olunan düzgün variantlarla avtomatik əvəz edən funksiyasıdır. Mexanizm UIKit mətn sahələri səviyyəsində işləyir və standart UITextField və UITextView daxiletmə elementlərindən istifadə edən bütün tətbiqlərdə mövcuddur.

Avtokorreksiyanın əsasında hər bir dəstəklənən dil üçün milyonlarla mətn nümunəsi üzərində öyrədilmiş dil modeli dayanır. Model tamamilə cihazda (on-device) işləyir ki, bu da daxil edilən məlumatların məxfiliyini təmin edir — mətn təhlil üçün Apple serverlərinə göndərilmir. Hər iOS yeniləməsi ilə model dəqiqləşdirilir və yeni sözlər və qaydalarla genişləndirilir.

Avtokorreksiya, proqramçı açıq şəkildə söndürməyibsə, bütün mətn sahələri üçün avtomatik aktivləşir. İstifadəçi avtokorreksiyanı sistem parametrlərində (Parametrlər > Ümumi > Klaviatura > Avtokorreksiya) tamamilə söndürə bilər, lakin proqramçı da autocorrectionType xüsusiyyəti vasitəsilə ayrı-ayrı sahələr üçün bu davranışı idarə edə bilər.

WWDC 2023 Session 204 məlumatına görə, Apple yalnız son sözü deyil, bütün cümlənin kontekstini nəzərə alan Transformer əsaslı təkmilləşdirilmiş avtokorreksiya dil modelini təqdim etdi. Bu, n-gram əsaslı əvvəlki modellə müqayisədə yalançı düzəlişlərin sayını 30% azaltmağa imkan verdi.

iOS-da avtokorreksiya rejimləri

UITextAutocorrectionType müəyyən bir mətn sahəsi üçün avtokorreksiya davranışını təyin edən üç dəyərli sadalamadır. Hər bir dəyər Interface Builder və sahə yaradılarkən kodda mövcud olan autocorrectionType xüsusiyyəti vasitəsilə təyin edilir.

.default rejimi

.default dəyəri sahənin klaviaturanın sistem parametrlərindən qlobal avtokorreksiya tənzimləməsini miras alması deməkdir. Bu rejim istifadəçinin seçiminə hörmət etdiyi üçün əksər mətn sahələri üçün tövsiyə olunur. Əgər istifadəçi parametrlərdə avtokorreksiyanı söndürübsə, .default sahəsi də ondan istifadə etməyəcək.

.yes rejimi

.yes dəyəri sistem tənzimləməsindən asılı olmayaraq sahə üçün avtokorreksiyanı məcburi aktivləşdirir. Bu rejim yalnız orfoqrafik dəqiqliyin kritik olduğu sahələrdə — məsələn, mətn redaktorlarında, qeyd və ya mesaj sahələrində istifadə edilməlidir. Apple .yes-in ehtiyatla tətbiq edilməsini tövsiyə edir, çünki məcburi aktivləşdirmə istifadəçinin gözləntilərinə zidd ola bilər.

.no rejimi

.no dəyəri müəyyən bir sahə üçün avtokorreksiyanı söndürür. Bu rejim parol sahələri (secure text entry), email ünvanları, təsdiq kodları və axtarış sorğuları üçün məcburidir. Bu sahələrdə avtokorreksiya nəinki faydasız, hətta zərərlidir — düzgün daxil edilmiş məlumatları səhv olanlarla əvəz edə bilər.

RejimDəyərTövsiyə
.defaultSistem tənzimləməsini miras alırƏksər daxiletmə sahələri
.yesMəcburi aktivdirMətn redaktorları, qeydlər
.noMəcburi söndürülübParollar, email, axtarış, kodlar

Dil modeli və lüğət

iOS avtokorreksiyasının dil modeli statik lüğət və dinamik öyrənilən modelin kombinasiyasından istifadə edir. Sistem lüğəti hər bir dil üçün ən çox istifadə olunan sözləri ehtiva edir, Transformer əsaslı dil modeli isə konteksti və dəyişdirmə ehtimalını təhlil edir. Model istifadəçinin daxil etdiyi mətnlər əsasında cihazda öyrənilir.

İstifadəçi klaviatura parametrləri (Parametrlər > Ümumi > Klaviatura > Mətn dəyişdirmə) vasitəsilə şəxsi lüğətə sözlər əlavə edə bilər. Əlavə edilmiş sözlər iCloud-da saxlanılır və eyni Apple ID vasitəsilə cihazlar arasında sinxronlaşdırılır. Sistem şəxsi lüğətdəki sözləri düzəltməyəcək, bu da adlar, brendlər və texniki terminlər üçün əlverişlidir.

Spesifik sahələr — tibbi, hüquqi, texniki — üçün standart lüğət kifayət qədər termin ehtiva etməyə bilər. Belə tətbiqlərdə müvafiq sahələr üçün avtokorreksiyanı söndürmək və ya iOS 17+ üçün UIResponder metodunun .replacementDictionary vasitəsilə fərdi mətn dəyişdirməsindən istifadə etmək tövsiyə olunur.

Apple Machine Learning Research (2024) məlumatına görə, Transformer arxitekturasına əsaslanan yeni avtokorreksiya modeli 10 tokenə qədər konteksti emal edir (əvvəlki modeldə 3 token), bu da istifadəçinin niyyətini daha dəqiq müəyyən etməyə imkan verir. Model təkcə orfoqrafiyanı deyil, həm də cümlənin qrammatik strukturunu nəzərə alır.

Safe Keyboard və məxfi məlumatlar

Safe Keyboard secureTextEntry = true olan sahələr üçün avtomatik aktivləşən qorunan daxiletmə rejimidir. Bu rejimdə avtokorreksiya, avtokapitalizasiya və prediktiv daxiletmə sistem tərəfindən autocorrectionType dəyərlərindən asılı olmayaraq söndürülür. Sistem həmçinin şəxsi lüğətə və mətn dəyişdirmələrinə girişi bloklayır.

Safe Keyboard avtokorreksiya mexanizmləri vasitəsilə daxil edilən məlumatların sızmasının qarşısını alır. Əgər avtokorreksiya parol sahəsi üçün aktiv olsaydı, sistem daxil edilmiş parolu şəxsi lüğətdə saxlayar və ya modelin öyrədilməsi üçün Apple serverlərinə göndərə bilərdi. Safe Keyboard məxfi məlumatların tətbiq hüdudlarından kənara çıxmamasını təmin edir.

Maliyyə tətbiqləri üçün Safe Keyboard yalnız secureTextEntry olan sahələr üçün avtomatik aktivləşir. Kart nömrələri, etibarlılıq müddətləri və CVV kodlarının daxil edilməsi sahələri üçün proqramçı əl ilə autocorrectionType = .no və keyboardType = .numberPad və ya .phonePad təyin edərək avtokorreksiyanı söndürməlidir.

iOS 17-dən başlayaraq Safe Keyboard üçüncü tərəf klaviaturaları vasitəsilə ələ keçirmədən qorumanı dəstəkləyir. İstifadəçi App Store-dan klaviatura quraşdırıbsa, secureTextEntry aktivləşdikdə sistem klaviaturası avtomatik olaraq üçüncü tərəf klaviaturasını əvəz edir, hətta o standart seçilmiş olsa belə. Bu, parolların yalnız təhlükəsiz sistem klaviaturası vasitəsilə daxil edilməsini təmin edir.

Swift kodu ilə konfiqurasiya

Swift-də avtokorreksiyanın idarə edilməsi UITextField və UITextView obyektlərinin autocorrectionType xüsusiyyəti vasitəsilə həyata keçirilir. Xüsusiyyət həm oxumaq, həm də yazmaq üçün əlçatandır və daxiletmə kontekstindən asılı olaraq dinamik dəyişdirilə bilər. Interface Builder vasitəsilə konfiqurasiya atributlar inspektorunda Correction adı altında mövcuddur.

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

Giriş forması üçün avtokorreksiya parol sahəsi üçün söndürülməli və login sahəsi üçün standart olaraq aktiv qalmalıdır. Email sahəsi də avtokorreksiya olmadan buraxılması tövsiyə olunur, çünki @ simvolu və domen adları tez-tez səhv dəyişdirilir. Username sahəsi üçün avtokorreksiya aktiv ola bilər, əgər username oxuna bilən sözdürsə.

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 üçün avtokorreksiya konfiqurasiyası oxşar şəkildə aparılır. Bu, avtokorreksiyanın ən çox fayda verdiyi, lakin texniki terminlər və ya kod daxil edərkən narahatlıq yarada biləcəyi çoxsətirli şərh, mesaj və qeyd sahələri üçün xüsusilə vacibdir.

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

Dinamik dəyişdirmə üçün UITextFieldDelegate delegatından istifadə edin. textFieldDidBeginEditing metodu sahə aktivləşdirildikdə çağırılır və burada cari kontekstdən və ya tətbiqin işləməsi zamanı dəyişə bilən sahə rolundan asılı olaraq autocorrectionType dəyişdirilə bilər.

Avtokorreksiyanı nə vaxt söndürməli

Avtokorreksiya söndürülməlidir daxil edilən məlumatların dəqiqliyinin kritik olduğu və sistemin istifadəçinin niyyətini düzgün müəyyən edə bilmədiyi sahələrdə. Əsas hallar: parol və məxfi məlumat sahələri, email ünvanı sahələri, axtarış sətirləri, kod və proqram kodu daxiletmə sahələri, həmçinin qeyri-standart məlumat formatları olan sahələr.

Axtarış sətirləri (UISearchBar) üçün avtokorreksiya standart olaraq söndürülüb, bu da istifadəçilərin gözləntilərinə uyğundur. Axtarış zamanı istifadəçi natamam sözlər, texniki terminlər və ya müxtəlif dillərdə sorğular daxil edə bilər və avtokorreksiya yalnız mane olacaq. Eyni şəkildə URL və domen adları sahələri üçün də keçərlidir.

Mesajlaşma və ünsiyyət tətbiqlərində avtokorreksiya adətən aktivdir, lakin jarqon, abreviaturalar və qeyri-rəsmi lüğət daxil edərkən narahatlıq yarada bilər. Belə hallarda istifadəçi klaviatura parametrləri vasitəsilə avtokorreksiyanı söndürə bilər və ya proqramçı birbaşa tətbiq interfeysində keçid təmin edə bilər.

Apple Human Interface Guidelines-ə görə, avtokorreksiya daxil edilən məlumatların sistem lüğətində tapıla bilməyəcəyi hər bir sahə üçün söndürülməlidir: sifariş nömrələri, rezervasiya kodları, identifikatorlar, IMEI, MAC ünvanları. Sahə qeyri-standart formatda əlifba-rəqəm məlumatları qəbul edirsə — avtokorreksiyanı söndürün.

Tez-tez verilən suallar

Bütün tətbiqdə avtokorreksiyanı tamamilə necə söndürmək olar?

Tətbiq üçün qlobal avtokorreksiya söndürməsi mövcud deyil. Hər bir mətn sahəsi üçün ayrıca autocorrectionType = .no təyin etməli və ya dəyəri dəyişdirilmiş UITextField alt sinfi yaratmalısınız.

Niyə avtokorreksiya simulyatorda işləmir?

Simulyator Mac klaviaturasından sadələşdirilmiş daxiletmə modelindən istifadə edir. Simulyatorda avtokorreksiyanın dil modeli aktiv deyil — test üçün real cihazdan istifadə edin.

Şəxsi lüğətə söz necə əlavə etmək olar?

İstifadəçi Parametrlər > Ümumi > Klaviatura > Mətn dəyişdirmə vasitəsilə söz əlavə edə bilər. Tətbiq üçün sistem avtokorreksiya lüğətinə proqramlı şəkildə söz əlavə etmək üçün API yoxdur.

keyboardType təyini avtokorreksiyanı söndürürmü?

Xeyr, keyboardType avtokorreksiyaya təsir etmir. Hətta .numberPad klaviaturası üçün də avtokorreksiya aktiv ola bilər, əgər autocorrectionType vasitəsilə açıq şəkildə söndürülməyibsə.

Üçüncü tərəf klaviaturaları üçün avtokorreksiya işləyirmi?

Üçüncü tərəf klaviaturaları öz avtokorreksiya mexanizmlərinə malikdir və sistem UITextAutocorrectionType-dan istifadə etmir. Davranış konkret klaviaturanın tətbiqindən asılıdır.

Nəticə

  • Autocorrection — mətn sahələrində orfoqrafik səhvləri avtomatik düzəltmək üçün iOS sistem funksiyası
  • Üç rejim UITextAutocorrectionType: .default (parametrləri miras alır), .yes (aktiv), .no (söndürülüb)
  • Transformer dil modeli 10 tokenə qədər konteksti emal edir və tamamilə cihazda işləyir
  • Safe Keyboard secureTextEntry = true olan sahələr üçün avtokorreksiyanı avtomatik söndürür
  • Avtokorreksiya faydasızdır parol, email, kod, axtarış və qeyri-standart məlumat formatları sahələri üçün
  • Konfiqurasiya hər sahə üçün fərdi olaraq autocorrectionType xüsusiyyəti vasitəsilə aparılır
  • Tövsiyə — avtokorreksiya davranışını aktiv dil modeli olan real cihazda test edin

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun