Autocapitalization — iOS mexanizmidir, müəyyən kontekstlərdə daxil edilən mətnin ilk hərfinin avtomatik olaraq böyük hərflə yazılmasını təmin edir. UIKit UITextInputTraits protokolunda autocapitalizationType xüsusiyyətini dörd rejimlə təqdim edir: none, words, sentences və allCharacters. Apple Text Programming Guide (2025)-ə əsasən, avtokapitalizasiyanın düzgün konfiqurasiyası istifadəçi təcrübəsini yaxşılaşdırır və daxiletmə zamanıl əl ilə düzəlişlərin sayını azaldır. Mətn sahələrinin əksəriyyəti üçün sentences rejimindən, istifadəçi adları və şifrələr üçün isə none rejimindən istifadə edin.
Əsas məqamlar
Autocapitalization (avtokapitalizasiya) — iOS əməliyyat sisteminin funksiyasıdır, müəyyən şərtlər baş verdikdə mətnin ilk simvolunu avtomatik olaraq böyük hərflə yazır. Mexanizm UITextInputTraits protokolunu tətbiq edən bütün elementlər üçün mövcud olan autocapitalizationType xüsusiyyəti vasitəsilə idarə olunur: UITextField, UITextView və UISearchBar.
Funksiya iOS mətn mühərrikində işləyir və hər simvol daxil edilərkən aktivləşir. Sistem kursorun mövqeyini və ətraf mətni təhlil edir ki, cari daxil edilən simvolun böyük hərflə yazılmasının lazım olub-olmadığını müəyyənləşdirsin. Şərt ödənilərsə, iOS simvol sahədə göstərilməzdən əvvəl kiçik hərfi avtomatik olaraq böyük hərflə əvəz edir.
Apple Human Interface Guidelines (2025)-ə əsasən, avtokapitalizasiya həm də avtokorreksiya və prediktiv mətn daxiletməni əhatə edən geniş proqnozlaşdırıcı daxiletmə sisteminin bir hissəsidir. İstifadəçi bütün bu funksiyaları sistem parametrlərində (Parametrlər > Ümumi > Klaviatura) qlobal olaraq söndürə bilər, lakin tərtibatçı da onları konkret sahələr səviyyəsində idarə edir.
Avtokorreksiyadan fərqli olaraq, avtokapitalizasiya dil modelindən istifadə etmir — sadə qaydalarla işləyir: nöqtə və boşluqdan sonra, mətnin əvvəlində, yeni sətri simvolundan sonra. İstisna words rejimidir, burada kontekstdən asılı olmayaraq hər sözün ilk hərfi böyük olur.
UITextAutocapitalizationType — registrin avtomatik çevrilməsi strategiyasını müəyyənləşdirən dörd dəyərdən ibarət sadalamadır. Hər bir rejim müəyyən mətn sahəsi növü üçün nəzərdə tutulmuşdur və istifadəçi təcrübəsinin konkret tapşırığını həll edir.
.none rejimi registrin avtomatik çevrilməsini tamamilə söndürür. Bütün simvollar istifadəçinin yazdığı registrdə daxil edilir. Bu rejim şifrə, email ünvanları, ləqəblər, axtarış sorğuları və registrin serverdə məlumatların işlənməsi üçün əhəmiyyət kəsb etdiyi istənilən sahələr üçün məcburidir.
.words rejimi daxil edilən hər sözün ilk hərfinin böyük yazılmasını təmin edir. Sistem boşluqdan sonra sözün sərhəddini müəyyənləşdirir və boşluqdan sonrakı ilk simvolu böyük hərflə çevirir. Bu rejim ad, soyad, şəhər adları, küçələr və hər sözün böyük hərflə başlamalı olduğu digər sahələr üçün əlverişlidir.
.sentences rejimi — ən çox yayılmışdır və əksər mətn sahələri üçün standart olaraq istifadə olunur. Sistem nöqtə, nida və ya sual işərəsindən sonra ilk hərfi böyük edir. Rejim qeydlər, mesajlar, şərhlər və digər çoxsətirli mətnlərin daxil edilməsi üçün idealdır.
.allCharacters rejimi bütün daxil edilən simvolları böyük hərflərə çevirir. Bu rejim Caps Lock-un daimi basılı saxlanılmasına bərabərdir və məlumatların böyük hərflə yazılmalı olduğu sahələr üçün istifadə olunur: poçt indeksləri, ölkə kodları, abbreviaturalar, sifariş nömrələri. Ehtiyatla tətbiq edilməlidir, çünki böyük hərflə yazılmış mətn daha çətin oxunur.
| Rejim | Təsvir | Daxiletmə nümunəsi | Tövsiyə |
|---|---|---|---|
| .none | Dəyişiklik yoxdur | john@mail.com | Email, şifrələr, axtarış |
| .words | Hər söz | Elməddin Tağıyev | Ad, ünvan, şəhər |
| .sentences | Cümlənin əvvəli | Salam. Necəsiz? | Mesajlar, qeydlər |
| .allCharacters | Bütün böyük | ABC-123 | Kodlar, indekslər |
Avtokapitalizasiya mexanizmi düymənin basılmasının emalı mərhələsində, simvolun ekranda göstərilməsindən əvvəl aktivləşir. İstifadəçi düyməni basdıqda, UITextInputTraits kursorun cari mövqeyini yoxlayır və müəyyən edilmiş autocapitalizationType-ə uyğun olaraq registrin çevrilməsi qaydasını tətbiq edir.
.sentences rejimi üçün sistem tetikleyici simvolları izləyir: nöqtə (.), nida işərəsi (!), sual işərəsi (?), həmçinin yeni sətri simvolu ( ) rejim aktiv olduqda. Tetikleyici simvol və ondan sonrakı boşluq aşkarlanandan sonra sistem növbəti daxil edilən simvol üçün “böyük hərf gözləntisi” bayrağını təyin edir.
.words rejimi boşluq simvolunu tetikleyici kimi izləyir. Hər boşluqdan sonra sistem növbəti söz üçün böyük hərf gözləyir. Bununla belə, istisnalar var: defisdən, apostrofdan və söz daxilindəki digər durğu işərələrindən sonra böyük hərf qoyulmur. Məsələn, “O’Brien” düzgün qalacaq.
Vacib xüsusiyyət — avtokapitalizasiya yalnız sözün ilk simvolu üçün işləyir. İstifadəçi ortasında böyük hərflər olan söz daxil edərsə (məsələn, iPhone və ya macOS), sistem onları dəyişdirmir, çünki çevrilmə yalnız tetikleyicidən sonrakı ilk simvola tətbiq edilir. Bu o deməkdir ki, qeyri-standart registrli brend və məhsul adları zədələnməyəcək.
Avtokapitalizasiya söndürülməlidir registrin məlumatların düzgün işlənməsi üçün əhəmiyyət kəsb etdiyi sahələrdə. Əsas hallar: email ünvanları, ləqəblər və istifadəçi adları, şifrələr, axtarış sorğuları, URL ünvanları, təsdiq kodları, IMEI və seriya nömrələri. Bütün bu hallarda registrin avtomatik dəyişdirilməsi serverdə emal zamanı səhvlərə səbəb olacaq.
Axtarış sətirləri (UISearchBar) üçün avtokapitalizasiya standart olaraq söndürülür, bu istifadəçilərin gözləntilərinə uyğundur. Axtarış sorğusu istənilən registrdə daxil edilə bilər və server adətən onu özü kiçik hərflərə çevirir. Axtarış üçün avtokapitalizasiyanı aktiv etsəniz, istifadəçi hər dəfə sorğunun əvvəlindəki böyük hərfi əl ilə düzəltməli olacaq.
Qeydiyyat formalarında username və ya nickname sahəsi .none rejiminə malik olmalıdır, çünki bir çox sistemlər istifadəçi adlarında registri fərqləndirir. Email sahəsi də avtokapitalizasiyasız olmalıdır — domen adları registrə həssas olmasa da, email-in lokal hissəsi nəzəri olaraq registri fərqləndirə bilər, baxmayaraq ki, praktikada bu nadir hallarda baş verir.
Apple Developer Documentation-a əsasən, secureTextEntry (şifrələr) olan sahələr avtomatik olaraq autocapitalizationType = .none dəyərini miras alır, hətta tərtibatçı açıqça başqa dəyər təyin etsə belə. Sistem qorunan daxiletmə üçün ən yüksək prioritetə malikdir və şifrə sahəsi üçün avtokapitalizasiyanı aktiv etmək üçün edilən bütün cəhdləri görməzdən gəlir.
Avtokapitalizasiyanın konfiqurasiyası Swift-də autocapitalizationType xüsusiyyəti vasitəsilə həyata keçirilir. Xüsusiyyət UITextField, UITextView və UISearchBar üçün mövcuddur. Dəyər həm kodda, həm də Interface Builder vasitəsilə atributlar inspektorunda təyin edilə bilər, burada rejim Capitalization adlanır.
let nameField = UITextField()
nameField.autocapitalizationType = .words
let emailField = UITextField()
emailField.autocapitalizationType = .none
Əlaqə forması üçün hər sahəni semantikasına uyğun konfiqurasiya edin: ad — .words, email — .none, mesaj — .sentences. Bu kombinasiya ən yaxşı istifadəçi təcrübəsini təmin edir və registrin əl ilə düzəlişinə ehtiyacı azaldır.
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
}
}
Proqram dəyişikliyi üçün UITextFieldDelegate istifadə edin. Məsələn, sahə müxtəlif kontekstlərdə istifadə oluna bilərsə, formanın cari iş rejimindən asılı olaraq textFieldDidBeginEditing metodunda autocapitalizationType dəyışdirin.
func textFieldDidBeginEditing(_ textField: UITextField) {
if textField === codeField {
textField.autocapitalizationType = .allCharacters
}
}
Avtokapitalizasiya istifadəçinin klaviaturasında qurulmuş daxiletmə dilindən asılıdır. Müxtəlif dillər üçün registrin çevrilməsi qaydaları fərqlənə bilər. Məsələn, türk dilində “i” hərfi böyük registrdə “İ” (nöqtə ilə), “I” isə kiçik registrdə “ı” (nöqtəsiz) olur. iOS bu xüsusiyyətləri avtomatik nəzərə alır.
Rus dili üçün avtokapitalizasiya ingilis dili ilə eyni qaydalarla işləyir: nöqtədən sonra, cümlənin əvvəlində və yeni sətrdən sonra böyük hərf. “Jo” hərfi ilə problemlər yarana bilər — o, sistem lüğətində olsa da, bütün klaviatura tərtibləri onu əsas qatda göstərmir və avtokapitalizasiya onu düzgün şəkildə böyük hərflə yazır.
Çin, Yaponiya və Koreya dilləri üçün avtokapitalizasiya tətbiq edilmir, çünki bu dillərdə registr anlayışı yoxdur. autocapitalizationType rejimi müvafiq klaviaturalardan istifadə edərkən sistem tərəfindən görməzdən gəlinir və sahə təyin edilmiş dəyərdən asılı olmayaraq .none rejimində olduğu kimi davranır.
Ərəb dili və ivrit üçün də avtokapitalizasiya tətbiq edilmir, çünki bu dillər kiçik və böyük hərflərə bölünməyən öz yazı sistemlərindən istifadə edir. iOS daxiletmə dilini düzgün müəyyənləşdirir və bu anlayışın olmadığı dillər üçün avtokapitalizasiya parametrlərini görməzdən gəlir.
Tez-tez verilən suallar
Bəli, autocapitalizationType xüsusiyyəti istənilən vaxt, hətta sahə aktiv olanda belə dəyişdirilə bilər. Dəyişiklik növbəti simvol daxil edilərkən qürvəyə minəcək.
Bəli, isSecureTextEntry = true olan sahələr üçün sistem avtomatik olaraq autocapitalizationType = .none təyin edir. Bu davranışı proqram vasitəsilə dəyişdirmək mümkün deyil.
Bəli, UITextView autocapitalizationType-ı tam dəstəkləyir. Bu, xüsusilə .sentences rejiminin ən təbii işlədiyi çoxsətirli sahələr üçün faydalıdır.
Əgər sahə secureTextEntry kimi qeyd edilməyibsə, lakin şifrə daxil etmək üçün istifadə olunursa, avtokapitalizasiya şifrəni dəyişdirə bilər. Registrin əhəmiyyət kəsb etdiyi sahələrdə həmişə onu söndürün.
Simulyatorda avtokapitalizasiya Mac-in fiziki klaviaturası vasitəsilə işləyir və fərqli davrana bilər. Düzgün davranış üçün real cihazda sınayın.
Xülasə
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.
Həm də oxuyun