Text Content Type: bu nədir, semantik növlər və UIKit

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

Text Content Type — bu iOS mexanizmidir, sistemə mətn sahəsinin hansı məlumatları gözlədiyini bildirir. UIKit daxiletmə sahələrini qeyd etmək üçün UITextContentType sabitlərini təqdim edir: email, parol, telefon, username və onlarla digər semantik növlər. Apple Human Interface Guidelines (2025) məlumatlarına görə, content type-in düzgün qurulması avtomatik doldurma və adaptiv klaviatura hesabına formaların doldurulma sürətini 40% artırır. Hər mətn sahəsində UITextContentType istifadə edin — bu istifadəçi təcrübəsini yaxşılaşdırır və daxiletmə xətalarının sayını azaldır.

Əsas məqamlar

  • Text Content Type — UITextField və UITextView üçün semantik etiket, gözlənilən məlumat növünü göstərir
  • UITextContentType 30-dan çox əvvəlcədən təyin edilmiş növ ehtiva edir: email, telefon, parol, ünvan, ad, soyad və digərləri
  • Avtomatik doldurma yalnız düzgün göstərilmiş content type ilə işləyir — sistem sahəni açar dəstəsindəki məlumatlarla uyğunlaşdırır
  • Klaviatura növə uyğunlaşır: email üçün @ göstərir, telefon üçün — rəqəm düzümü
  • Təhlükəsizlik — parollar və birdəfəlik kodlar üçün müvafiq növlərdən istifadə edin ki, iCloud Keychain ilə inteqrasiya işə salınsın

Text Content Type nədir?

Text Content Type (UITextContentType) — bu UIKit mətn sahələrinin xüsusiyyətidir, iOS-a daxiletmə sahəsinin hansı semantik məlumatları gözlədiyini bildirir. Sistem bu məlumatı iki məqsəd üçün istifadə edir: uyğun klaviatura düzümünün seçilməsi və açar dəstəsindən (iCloud Keychain) avtomatik doldurma mexanizminin aktivləşdirilməsi.

iOS 5-də semantik növlərin ilk versiyası təqdim edildi, iOS 17-də isə UITextContentType dəsti 34 sabitə qədər genişləndi, o cümlədən birdəfəlik kodlar, poçt indeksləri və küçə adları üçün yeni növlər. Hər sabit sistemin daxili emal qaydaları ilə uyğunlaşdırdığı bir sətri təmsil edir.

Mexanizm UITextInputTraits səviyyəsində işləyir — UITextField, UITextView və UISearchBar-ın miras aldığı protokol. Bu o deməkdir ki, content type əlavə konfiqurasiya olmadan bütün standart daxiletmə elementlərində mövcuddur.

WWDC 2024 Session 101 məlumatlarına görə, Apple interfeysdəki hər mətn sahəsi üçün content type təyin etməyi tövsiyə edir — hətta avtomatik doldurma nəzərdə tutulmasa belə. Etiketin özü VoiceOver-a məhdud imkanlı istifadəçilər üçün sahənin məqsədini düzgün səsləndirməyə kömək edir.

Mövcud UITextContentType növləri

UIKit kateqoriyalara bölünmüş növ iyerarxiyasını təqdim edir. Əsas qruplara şəxsiyyət məlumatları (ad, soyad, username), əlaqə məlumatları (email, telefon, ünvan) və hesablar (parol, birdəfəlik kod) daxildir. Hər qrup müxtəlif avtomatik doldurma mexanizmlərini aktivləşdirir.

Əlaqə məlumatları

Əlaqə növləri qrupuna `.emailAddress`, `.telephoneNumber`, `.fullStreetAddress` və `.city` daxildir. Bu növlər kontaktlardan və iCloud Keychain-dən avtomatik doldurmanı aktivləşdirir. `.emailAddress` növü olan sahə əvvəllər daxil edilmiş email ünvanlarını, `.telephoneNumber` isə ünvan kitabçasından telefon nömrələrini təklif edir.

Hesablar

Giriş sahələri üçün .username, .password və .newPassword nəzərdə tutulub. .username növü saxlanmış hesabları təklif edən iCloud parol menecerini aktivləşdirir. .newPassword növü olan sahə ilk daxiletmədə iCloud Keychain vasitəsilə təhlükəsiz parol yaradılmasını başladır.

iOS 17+ üçün ixtisaslaşmış növlər

iOS 17-dən başlayaraq, Apple SMS təsdiq kodları üçün .oneTimeCode və bağlamaların izlənməsi üçün .shipmentTrackingNumber əlavə etdi. .oneTimeCode növü mesajlardan kodları avtomatik tanıyır və Messages tətbiqini açmağa ehtiyac olmadan QuickType sətrində təklif edir.

KateqoriyaNövləriOS
Şəxsiyyət.name, .givenName, .familyName, .nickname5+
Əlaqələr.emailAddress, .telephoneNumber, .fullStreetAddress5+
Hesablar.username, .password, .newPassword5+
Məkan.location, .city, .state, .postalCode10+
Kart məlumatları.creditCardNumber, .creditCardSecurityCode12+
Birdəfəlik kodlar.oneTimeCode17+

Hər növ sətir sabiti ilə təmsil olunur, lakin onları == operatoru ilə müqayisə etmək lazımdır, rawValue ilə deyil. iOS gələcək versiyalarda yeni növlər əlavə edə bilər, buna görə switch-case-də həmişə default budağından istifadə edin.

Klaviaturanın məzmun növünə uyğunlaşması

UIKeyboardType və UITextContentType birlikdə işləyir: keyboard type klaviatura düzümünü, content type isə QuickType sətrindəki əlavə düymələri müəyyən edir. Əgər content type təyin edilibsə, iOS optimal daxiletmə üçün keyboard type-ı ləğv edə bilər. Məsələn, `.emailAddress` növündə klaviatura əsas qatda @ simvolunu avtomatik göstərir.

.telephoneNumber növü olan sahə üçün iOS quraşdırılmış keyboard type-dan asılı olmayaraq klaviaturanı telefon düzümünə keçirir. Bu davranışı söndürmək mümkün deyil — sistem content type-ın prioritetini açıq klaviatura konfiqurasiyasından yüksək hesab edir. Tərtibatçılar hər iki xüsusiyyətin parametrlərini təkrarlamalı deyillər.

.URL və .emailAddress növləri klaviaturaya müvafiq olaraq .com və @ düymələrini əlavə edir. .creditCardNumber content type-ı ilə .decimalPad növü onluq ayırıcı ilə rəqəm klaviaturasını göstərir, bu da məbləğlərin və kart nömrələrinin daxil edilməsi üçün əlverişlidir. Apple Human Interface Guidelines məlumatlarına görə, istifadəçi klaviaturanın daxil edilən məlumat növünə uyğun olmasını gözləyir, əksini deyil.

.oneTimeCode istisnadır — bu növ klaviatura düzümünü dəyişmir, lakin SMS-dən kodlarla QuickType sətrini aktivləşdirir. İstifadəçi klaviatura üzərində kod təklifini görür və bir toxunuşla onu daxil edə bilər. Mexanizm yalnız SMS aldıqdan sonra first responder olan sahələr üçün işləyir.

Avtomatik doldurma və açar dəstəsi

Avtomatik doldurma iOS-da Text Content Type-dən daxiletmə sahələrini iCloud Keychain və ASCredentialProviderViewController məlumatları ilə uyğunlaşdırmaq üçün istifadə edir. Sistem ekrandakı bütün sahələri təhlil edir, onların semantik növlərini müəyyənləşdirir və müvafiq saxlanmış məlumatları təklif edir. Düzgün göstərilmiş növlər olmadan avtomatik doldurma aktivləşmir.

Avtomatik doldurmanın işləməsi üçün üç şərt yerinə yetirilməlidir. Birinci — sahədə düzgün UITextContentType olmalıdır. İkinci — ekranda müxtəlif növə malik ən azı iki sahə olmalıdır (məsələn, .username və .password). Üçüncü — tətbiq veb-saytla sinxronizasiya üçün webcredentials entitlement-ı ilə Associated Domains-i dəstəkləməlidir.

Açar dəstəsi (Keychain) saxlanmış qeydləri təsnif etmək üçün content type-dən istifadə edir. Sahə .password kimi qeyd edilibsə, sistem daxil edilmiş dəyəri iCloud Keychain-də saxlayır və növbəti girişdə təklif edir. .creditCardNumber növü olan sahələr Face ID vasitəsilə təsdiqlənmədən sonra avtomatik olaraq Wallet-də saxlanılır.

.oneTimeCode növündəki birdəfəlik kodlar üçün iOS 17 SMS-ə birbaşa giriş tələb etməyən yeni AutoFill OTP mexanizmindən istifadə edir. Sistem mesajlardan kodları əməliyyat sistemi səviyyəsində ələ keçirir və tətbiqin mesaj məzmununu oxumasına ehtiyac olmadan QuickType sətri vasitəsilə tətbiqə ötürür.

Swift-də istifadə nümunələri

Text Content Type-ın Swift-də əsas konfiqurasiyası kodda textContentType xüsusiyyəti və ya Interface Builder vasitəsilə həyata keçirilir. Kodda sabitin təyin edilməsi bir sətir çəkir, IB-də isə lazımi növ atributlar inspektorunda açılan siyahıdan seçilir.

swift
let emailField = UITextField()
emailField.textContentType = .emailAddress
emailField.placeholder = "example@domain.com"

let passwordField = UITextField()
passwordField.isSecureTextEntry = true
passwordField.textContentType = .newPassword

Avtomatik doldurma ilə giriş formasının proqram vasitəsilə yaradılması üçün müxtəlif content type-ə malik hər iki sahədən istifadə edin. Sistem onları avtomatik olaraq login və parol kimi əlaqələndirəcək. Tətbiq biometrik girişi dəstəkləyirsə, hesabın düzgün tanınması üçün .username növü olan sahə əlavə edin.

swift
class LoginViewController: UIViewController {

    @IBOutlet var usernameField: UITextField!
    @IBOutlet var passwordField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        usernameField.textContentType = .username
        passwordField.textContentType = .password
        passwordField.autocorrectionType = .no
    }
}

SMS-dən birdəfəlik kodun daxil edilməsi sahəsi üçün .oneTimeCode növünü təyin edin. Sistem kodu aldıqdan sonra onu avtomatik olaraq QuickType sətrində təklif edəcək. Tərtibatçı SMS oxumaq üçün icazə istəməli və ya öz mesaj analizini həyata keçirməli deyil.

swift
let otpField = UITextField()
otpField.textContentType = .oneTimeCode
otpField.keyboardType = .numberPad
otpField.placeholder = "Code from SMS"

iOS 17+ üçün .oneTimeCode növü sahəyə fokus olmadan avtomatik doldurmanı dəstəkləyir. İstifadəçi SMS ilə kod alarsa, iOS onu blok ekranında təklif edir və blokdan çıxdıqdan sonra kod müvafiq content type-a malik aktiv sahəyə avtomatik daxil edilir.

Növ seçimi üzrə tövsiyələr

Düzgün növün seçilməsi formanın konversiyasına və istifadəçi təcrübəsinə birbaşa təsir göstərir. Apple mövcud olanlardan ən konkret növü göstərməyi qətiyyətlə tövsiyə edir. Məsələn, ad sahəsi üçün .givenName istifadə edin, ümumi .name yox — bu sistemə kontaktlardan düzgün adla avtomatik doldurma təklif etməyə imkan verəcək.

Ümumi səhvdən çəkinin — username sahəsi üçün .emailAddress təyin etmək. Tətbiq email-i login kimi istifadə edirsə, login sahəsi üçün .username və parol sahəsi üçün .password növlərini təyin edin. .emailAddress növü yalnız email-in əlaqə məlumatı kimi daxil edilməsi sahələri üçün nəzərdə tutulub, identifikator kimi deyil.

Eyni növdə bir neçə sahəsi olan formalar üçün (məsələn, iki email ünvanı) hər sahə üçün .textContentType xüsusiyyətindən istifadə edin, lakin fərqli accessibilityIdentifier identifikatorları əlavə edin. Bu, VoiceOver-ın sahələri düzgün səsləndirməsinə kömək edəcək, baxmayaraq ki, avtomatik doldurma sistemi hər iki sahə üçün eyni variantı təklif edə bilər.

Avtomatik doldurmanı real cihazda doldurulmuş açar dəstəsi ilə sınayın. Simulyator iCloud Keychain-i tam həcmdə dəstəkləmir və avtomatik doldurma davranışı fərqlənə bilər. Apple Developer Forums (2025) məlumatlarına görə, avtomatik doldurma ilə bağlı ən çox rast gəlinən problemlər məhz səhv göstərilmiş content type-dan qaynaqlanır.

Tez-tez verilən suallar

textContentType keyboardType-dan nə ilə fərqlənir?

UITextContentType semantik məlumat növünü, UIKeyboardType isə klaviatura düzümünü müəyyən edir. Content type optimal daxiletmə üçün keyboard type-ı ləğv edə bilər.

Hansı növlər iCloud Keychain-dən avtomatik doldurmanı aktivləşdirir?

Avtomatik doldurmanı .username, .password, .newPassword, .emailAddress, .telephoneNumber və .creditCardNumber növləri aktivləşdirir. Sistem bu növləri açar dəstəsindəki məlumatlarla uyğunlaşdırır.

Text Content Type WKWebView-də işləyir?

Bəli, WKWebView autocomplete atributu olan HTML sahələri üçün Text Content Type-ı dəstəkləyir. iOS avtomatik olaraq autocomplete atributlarını UITextContentType növləri ilə uyğunlaşdırır.

UITextView üçün content type göstərmək lazımdır?

Bəli, UITextView də UITextInputTraits-i miras alır və textContentType xüsusiyyətini dəstəkləyir. Bu, əlaqə məlumatlarının daxil edilməsi üçün çoxsətirli sahələrdə faydalıdır.

Səhv göstərilmiş növ olduqda nə baş verir?

Sistem avtomatik doldurma üçün yanlış məlumatlar təklif edə bilər və ya heç nə təklif etməyə bilər. Məsələn, .emailAddress növü olan username sahəsi login əvəzinə email təklif edə bilər.

Nəticə

  • Text Content Type — gözlənilən məlumat növünü təyin edən iOS daxiletmə sahələrinin semantik qeyd edilməsi
  • UITextContentType müxtəlif kateqoriyalar üçün 30-dan çox sabit əhatə edir: əlaqələr, hesablar, məkan, ödəniş məlumatları
  • Klaviatura content type-a avtomatik uyğunlaşır, lazımi simvolları və düzümü göstərir
  • Avtomatik doldurma iCloud Keychain-dən yalnız sahə növləri düzgün göstərildikdə aktivləşir
  • OTP mexanizmi iOS 17+ mesajlara giriş olmadan SMS-dən kodların avtomatik daxil edilməsinə imkan verir
  • VoiceOver sahənin məqsədini düzgün səsləndirmək üçün content type-dən istifadə edir
  • Tövsiyə — hər sahə üçün ən konkret növü göstərin və avtomatik doldurmanı real cihazda sınayın

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