Autocapitalization: bu nima, turlari va UITextAutocapitalizationType

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

Autocapitalization — bu iOS mexanizmi bo‘lib, ma’lum kontekstlarda kiritilgan matnning birinchi harfini avtomatik ravishda bosh harfga aylantiradi. UIKit UITextInputTraits protokolida autocapitalizationType xususiyatini to‘rt rejim bilan taqdim etadi: none, words, sentences va allCharacters. Apple Text Programming Guide (2025) ma’lumotlariga ko‘ra, avtokapitalizatsiyani to‘g‘ri sozlash foydalanuvchi tajribasini yaxshilaydi va kiritish vaqtida qo‘lda tuzatishlar sonini kamaytiradi. Aksariyat matn maydonlari uchun sentences rejimidan, foydalanuvchi nomlari va parollar uchun esa none rejimidan foydalaning.

Asosiy fikrlar

  • Autocapitalization — UIKit kiritish maydonlarida birinchi harfni avtomatik bosh harfga aylantirish
  • UITextAutocapitalizationType to‘rt rejimni o‘z ichiga oladi: none, words, sentences va allCharacters
  • Sentences rejimi — eng keng tarqalgan, har bir jumlaning birinchi harfini bosh harf qiladi
  • Words rejimi — har bir so‘zning birinchi harfini bosh harf qiladi, ism va familiya maydonlari uchun qulay
  • None rejimi — parol, email, qidiruv so‘rovlari va tasdiqlash kodlari maydonlari uchun majburiy

Autocapitalization nima?

Autocapitalization (avtokapitalizatsiya) — bu iOS operatsion tizimining funksiyasi bo‘lib, muayyan shartlar yuz berganda matnning birinchi belgisini avtomatik ravishda bosh harfga aylantiradi. Mexanizm UITextInputTraits protokolini amalga oshiradigan barcha elementlar uchun mavjud bo‘lgan autocapitalizationType xususiyati orqali boshqariladi: UITextField, UITextView va UISearchBar.

Funksiya iOS matn dvigateli darajasida ishlaydi va har bir belgi kiritilganda faollashadi. Tizim kursorni joylashuvi va atrofdagi matnni tahlil qiladi, joriy kiritilayotgan belgini bosh harfga aylantirish kerakligini aniqlash uchun. Agar shart bajarilsa, iOS belgi maydonda ko‘rsatilishidan oldin kichik harfni avtomatik ravishda bosh harf bilan almashtiradi.

Apple Human Interface Guidelines (2025) ma’lumotlariga ko‘ra, avtokapitalizatsiya avtokorreksiya va prediktiv matn kiritishni ham o‘z ichiga olgan kengroq bashoratli kiritish tizimining bir qismidir. Foydalanuvchi barcha bu funksiyalarni tizim sozlamalarida (Sozlamalar > Umumiy > Klaviatura) global o‘chirishi mumkin, ammo dasturchi ham ularni aniq maydonlar darajasida boshqaradi.

Avtokorreksiyadan farqli o‘laroq, avtokapitalizatsiya til modelidan foydalanmaydi — oddiy qoidalar bo‘yicha ishlaydi: nuqta va bo‘shliqdan keyin, matn boshida, yangi qator belgisidan keyin. Istisno words rejimi bo‘lib, unda kontekstdan qat’i nazar, har bir so‘zning birinchi harfi bosh harf bo‘ladi.

Avtokapitalizatsiya rejimlari

UITextAutocapitalizationType — bu registrni avtomatik o‘zgartirish strategiyasini belgilaydigan to‘rt qiymatli sanab o‘tishdir. Har bir rejim ma’lum turdagi matn maydonlari uchun mo‘ljallangan va foydalanuvchi tajribasining aniq vazifasini hal qiladi.

None — avtokapitalizatsiyasiz

.none rejimi registrni avtomatik o‘zgartirishni butunlay o‘chiradi. Barcha belgilar foydalanuvchi tergan registrda kiritiladi. Bu rejim parol, email manzillari, taxalluslar, qidiruv so‘rovlari va registr serverda ma’lumotlarni qayta ishlash uchun muhim bo‘lgan har qanday maydonlar uchun majburiydir.

Words — har bir so‘z bosh harf bilan

.words rejimi kiritilgan har bir so‘zning birinchi harfini bosh harf qiladi. Tizim so‘z chegarasini bo‘shliq bo‘yicha aniqlaydi va bo‘shliqdan keyingi birinchi belgini bosh harfga aylantiradi. Rejim ism, familiya, shahar nomlari, ko‘chalar va har bir so‘z bosh harf bilan boshlanishi kerak bo‘lgan boshqa maydonlar uchun qulay.

Sentences — jumla boshi

.sentences rejimi — eng keng tarqalgan va aksariyat matn maydonlari uchun standart sifatida ishlatiladi. Tizim nuqta, undov yoki so‘roq belgisidan keyin birinchi harfni bosh harf qiladi. Rejim eslatmalar, xabarlar, sharhlar va boshqa ko‘p qatorli matnlarni kiritish maydonlari uchun idealdir.

All Characters — barcha bosh harflar

.allCharacters rejimi barcha kiritilgan belgilarni bosh harflarga aylantiradi. Bu rejim Caps Lock-ni doimiy bosib turishga teng va ma’lumotlar bosh harflarda bo‘lishi kerak bo‘lgan maydonlar uchun ishlatiladi: pochta indekslari, mamlakat kodlari, qisqartmalar, buyurtma raqamlari. Ehtiyotkorlik bilan qo‘llash kerak, chunki bosh harflardagi matnni o‘qish qiyinroq.

RejimTavsifKiritish namunasiTavsiya
.noneO‘zgarishsizjohn@mail.comEmail, parollar, qidiruv
.wordsHar bir so‘zAli ValiyevIsm, manzil, shahar
.sentencesJumla boshiSalom. Qandaysiz?Xabarlar, eslatmalar
.allCharactersBarcha boshABC-123Kodlar, indekslar

Avtomatik bosh harf qanday ishlaydi

Avtokapitalizatsiya mexanizmi tugma bosilishini qayta ishlash bosqichida, belgi ekranda ko‘rsatilishidan oldin faollashadi. Foydalanuvchi tugmani bosganda, UITextInputTraits kursorni joriy joylashuvini tekshiradi va o‘rnatilgan autocapitalizationType bo‘yicha registrni o‘zgartirish qoidasini qo‘llaydi.

.sentences rejimi uchun tizim trigger belgilarini kuzatadi: nuqta (.), undov belgisi (!), so‘roq belgisi (?), shuningdek rejim yoqilgan bo‘lsa yangi qator belgisi ( ). Trigger belgisi va undan keyingi bo‘shliq aniqlangandan so‘ng, tizim keyingi kiritiladigan belgi uchun “bosh harf kutish” bayrog‘ini o‘rnatadi.

.words rejimi bo‘shliq belgisini trigger sifatida kuzatadi. Har bir bo‘shliqdan keyin tizim keyingi so‘z uchun bosh harfni kutadi. Biroq istisnolar mavjud: defisdan, apostrofdan va so‘z ichidagi boshqa tinish belgilaridan keyin bosh harf qo‘yilmaydi. Masalan, “O’Brien” to‘g‘ri qoladi.

Muhim xususiyat — avtokapitalizatsiya faqat so‘zning birinchi belgisi uchun ishlaydi. Agar foydalanuvchi o‘rtasida bosh harflar bo‘lgan so‘z kiritsa (masalan, iPhone yoki macOS), tizim ularni o‘zgartirmaydi, chunki o‘zgartirish faqat triggerdan keyingi birinchi belgiga qo‘llaniladi. Bu nostandart registrli brend va mahsulot nomlari buzilmasligini anglatadi.

Avtokapitalizatsiyani qachon o‘chirish kerak

Avtokapitalizatsiyani o‘chirish kerak registr ma’lumotlarni to‘g‘ri qayta ishlash uchun muhim bo‘lgan maydonlarda. Asosiy holatlar: email manzillari, taxalluslar va foydalanuvchi nomlari, parollar, qidiruv so‘rovlari, URL manzillari, tasdiqlash kodlari, IMEI va seriya raqamlari. Barcha bu holatlarda registrni avtomatik o‘zgartirish serverda qayta ishlashda xatolarga olib keladi.

Qidiruv satrlari (UISearchBar) uchun avtokapitalizatsiya standart o‘chirilgan, bu foydalanuvchilarning kutishlariga mos keladi. Qidiruv so‘rovi istalgan registrda kiritilishi mumkin va server odatda uni o‘zi kichik harflarga o‘tkazadi. Agar qidiruv uchun avtokapitalizatsiyani yoqsangiz, foydalanuvchi har safar so‘rov boshidagi bosh harfni qo‘lda tuzatishga majbur bo‘ladi.

Ro‘yxatdan o‘tish shakllarida username yoki nickname maydoni .none rejimiga ega bo‘lishi kerak, chunki ko‘p tizimlar foydalanuvchi nomlarida registrni farqlaydi. Email maydoni ham avtokapitalizatsiyasiz bo‘lishi kerak — domen nomlari registrga sezgir bo‘lmasa-da, email-ning mahalliy qismi nazariy jihatdan registrni farqlashi mumkin, garchi amalda bu kamdan-kam uchrasa ham.

Apple Developer Documentation ga ko‘ra, secureTextEntry (parollar) bo‘lgan maydonlar avtomatik ravishda autocapitalizationType = .none ni meros qilib oladi, hatto dasturchi aniq boshqa qiymat o‘rnatgan bo‘lsa ham. Tizim himoyalangan kiritish uchun eng yuqori ustuvorlikka ega va parol maydoni uchun avtokapitalizatsiyani yoqishga urinishlarni e’tiborsiz qoldiradi.

Swift-da sozlash misollari

Avtokapitalizatsiyani sozlash Swift-da autocapitalizationType xususiyati orqali amalga oshiriladi. Xususiyat UITextField, UITextView va UISearchBar uchun mavjud. Qiymatni kodda ham, Interface Builder orqali atributlar inspektorida ham o‘rnatish mumkin, bu erda rejim Capitalization deb nomlanadi.

swift
let nameField = UITextField()
nameField.autocapitalizationType = .words

let emailField = UITextField()
emailField.autocapitalizationType = .none

Aloqa formasi uchun har bir maydonni semantikasiga qarab sozlang: ism — .words, email — .none, xabar — .sentences. Bunday kombinatsiya eng yaxshi foydalanuvchi tajribasini ta’minlaydi va registrni qo‘lda tuzatish ehtiyojini kamaytiradi.

swift
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
    }
}

Dasturiy o‘zgartirish uchun UITextFieldDelegate dan foydalaning. Masalan, maydon turli kontekstlarda ishlatilishi mumkin bo‘lsa, formaning joriy ish rejimiga qarab textFieldDidBeginEditing metodida autocapitalizationType ni o‘zgartiring.

swift
func textFieldDidBeginEditing(_ textField: UITextField) {
    if textField === codeField {
        textField.autocapitalizationType = .allCharacters
    }
}

Mahalliylashtirish va avtokapitalizatsiya

Avtokapitalizatsiya foydalanuvchi klaviaturasida o‘rnatilgan kiritish tiliga bog‘liq. Turli tillar uchun registrni o‘zgartirish qoidalari farq qilishi mumkin. Masalan, turk tilida “i” harfi bosh registrda “İ” (nuqta bilan), “I” esa kichik registrda “ı” (nuqtasiz) bo‘ladi. iOS bu xususiyatlarni avtomatik hisobga oladi.

Rus tili uchun avtokapitalizatsiya ingliz tili bilan bir xil qoidalar bo‘yicha ishlaydi: nuqtadan keyin, jumla boshida va yangi qatordan keyin bosh harf. “Jo” harfi bilan muammolar yuzaga kelishi mumkin — u tizim lug‘atida mavjud bo‘lsa-da, barcha klaviatura tartiblari uni asosiy qatlamda ko‘rsatmaydi va avtokapitalizatsiya uni to‘g‘ri bosh harfga aylantiradi.

Xitoy, yapon va koreys tillari uchun avtokapitalizatsiya qo‘llanilmaydi, chunki bu tillarda registr tushunchasi yo‘q. Tegishli klaviaturalardan foydalanganda autocapitalizationType rejimi tizim tomonidan e’tiborga olinmaydi va maydon o‘rnatilgan qiymatdan qat’i nazar .none rejimidagi kabi harakat qiladi.

Arab tili va ibroniy tili uchun ham avtokapitalizatsiya qo‘llanilmaydi, chunki bu tillar kichik va bosh harflarga bo‘linmaydigan o‘z yozuv tizimidan foydalanadi. iOS tizimi kiritish tilini to‘g‘ri aniqlaydi va bu tushuncha mavjud bo‘lmagan tillar uchun avtokapitalizatsiya sozlamalarini e’tiborsiz qoldiradi.

Tez-tez beriladigan savollar

Avtokapitalizatsiya rejimini dinamik o‘zgartirish mumkinmi?

Ha, autocapitalizationType xususiyatini istalgan vaqtda, hatto maydon faol bo‘lganda ham o‘zgartirish mumkin. O‘zgarish keyingi belgi kiritilganda kuchga kiradi.

SecureTextEntry avtokapitalizatsiyani o‘chiradimi?

Ha, isSecureTextEntry = true bo‘lgan maydonlar uchun tizim avtomatik ravishda autocapitalizationType = .none ni o‘rnatadi. Bu xatti-harakatni dasturiy o‘zgartirish mumkin emas.

Avtokapitalizatsiya UITextView uchun ishlaydimi?

Ha, UITextView autocapitalizationType ni to‘liq qo‘llab-quvvatlaydi. Bu, ayniqsa, .sentences rejimi eng tabiiy ishlaydigan ko‘p qatorli maydonlar uchun foydali.

Avtokapitalizatsiya parolga qanday ta’sir qiladi?

Agar maydon secureTextEntry sifatida belgilanmagan bo‘lsa, lekin parol kiritish uchun ishlatilsa, avtokapitalizatsiya parolni o‘zgartirishi mumkin. Registr muhim bo‘lgan maydonlarda uni har doim o‘chiring.

Simulyator va qurilma o‘rtasida farq bormi?

Simulyatorda avtokapitalizatsiya Mac-ning fizik klaviaturasi orqali ishlaydi va boshqacha harakat qilishi mumkin. To‘g‘ri harakat qilish uchun haqiqiy qurilmada sinab ko‘ring.

Xulosa

  • Autocapitalization — iOS kiritish maydonlarida birinchi belgini avtomatik bosh harfga aylantirish funksiyasi
  • To‘rt rejim UITextAutocapitalizationType: none, words, sentences, allCharacters
  • .sentences rejimi aksariyat maydonlar uchun mos, nuqta, !, ? va yangi qatordan keyin faollashadi
  • .none rejimi email, parollar, qidiruv va registrga sezgir maydonlar uchun majburiy
  • .words rejimi ism, familiya, shahar va manzil maydonlari uchun optimal
  • Mahalliylashtirish — turk tili uchun İ/ı harfining maxsus qoidasi hisobga olinadi
  • Tavsiya — avtokapitalizatsiyani har bir maydon uchun uning semantikasiga qarab sozlang

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