Text Content Type: ano ito, mga semantikong uri at UIKit

May-akda: IT Sectr Nai-publish: 2026-07-07 Oras ng pagbabasa: 8 min

Text Content Type — ay isang mekanismo ng iOS na nagpapaalam sa system kung anong data ang inaasahan ng isang text field. Nagbibigay ang UIKit ng mga constant ng UITextContentType para sa pagmamarka ng mga input field: email, password, telepono, username at dose-dosenang iba pang mga semantikong uri. Ayon sa Apple Human Interface Guidelines (2025), ang tamang pag-setup ng content type ay nagpapataas ng bilis ng pagpuno ng form ng 40% dahil sa awtomatikong pagpuno at adaptive na keyboard. Gamitin ang UITextContentType sa bawat text field — pinapabuti nito ang karanasan ng gumagamit at binabawasan ang bilang ng mga error sa pag-input.

Mga Pangunahing Punto

  • Text Content Type — semantikong label para sa UITextField at UITextView na nagpapahiwatig ng uri ng inaasahang data
  • UITextContentType ay naglalaman ng higit sa 30 paunang natukoy na mga uri: email, telepono, password, address, unang pangalan, apelyido at iba pa
  • Awtomatikong pagpuno ay gumagana lamang sa tamang tinukoy na content type — itinutugma ng system ang field sa data mula sa keychain
  • Keyboard ay umaangkop sa uri: para sa email ay nagpapakita ng @, para sa telepono — numerikong layout
  • Seguridad — para sa mga password at isang-beses na code, gamitin ang mga kaukulang uri upang paganahin ang pagsasama sa iCloud Keychain

Ano ang Text Content Type?

Text Content Type (UITextContentType) — ay isang pag-aari ng mga text field ng UIKit na nagpapaalam sa iOS kung anong semantikong data ang inaasahan ng input field. Ginagamit ng system ang impormasyong ito para sa dalawang layunin: pagpili ng angkop na layout ng keyboard at pag-activate ng mekanismo ng awtomatikong pagpuno mula sa keychain (iCloud Keychain).

Sa iOS 5, ang unang bersyon ng mga semantikong uri ay ipinakilala, at sa iOS 17, ang set ng UITextContentType ay pinalawak sa 34 na constant, kabilang ang mga bagong uri para sa isang-beses na code, mga postal code at mga pangalan ng kalye. Ang bawat constant ay kumakatawan sa isang string na itinutugma ng system sa mga panloob na panuntunan sa pagproseso.

Ang mekanismo ay gumagana sa antas ng UITextInputTraits — ang protocol na minana ng UITextField, UITextView at UISearchBar. Nangangahulugan ito na ang content type ay magagamit sa lahat ng karaniwang elemento ng input nang walang karagdagang pagsasaayos.

Ayon sa WWDC 2024 Session 101, inirerekomenda ng Apple na tukuyin ang content type para sa bawat text field sa interface — kahit na ang awtomatikong pagpuno ay hindi inaasahan. Ang label mismo ay tumutulong sa VoiceOver na maipahayag nang tama ang layunin ng field para sa mga gumagamit na may mga kapansanan.

Mga magagamit na uri ng UITextContentType

Nagbibigay ang UIKit ng hierarchy ng mga uri na nahahati sa mga kategorya. Ang mga pangunahing grupo ay kinabibilangan ng data ng pagkakakilanlan (pangalan, apelyido, username), impormasyon ng contact (email, telepono, address) at mga account (password, isang-beses na code). Ang bawat grupo ay nag-a-activate ng iba't ibang mekanismo ng awtomatikong pagpuno.

Data ng contact

Ang grupo ng mga uri ng contact ay may kasamang `.emailAddress`, `.telephoneNumber`, `.fullStreetAddress` at `.city`. Ang mga uri na ito ay nag-a-activate ng awtomatikong pagpuno mula sa mga contact at iCloud Keychain. Ang field na may uri na `.emailAddress` ay awtomatikong nagmumungkahi ng mga naunang naipasok na email address, at ang `.telephoneNumber` — mga numero ng telepono mula sa address book.

Mga account

Para sa mga field ng pag-login, ang .username, .password at .newPassword ay inilaan. Ang uri na .username ay nag-a-activate ng tagapamahala ng password ng iCloud na nag-aalok ng mga nakaimbak na account. Ang field na may uri na .newPassword ay nagpapasimula ng pagbuo ng isang secure na password sa pamamagitan ng iCloud Keychain sa unang input.

Mga espesyal na uri ng iOS 17+

Simula sa iOS 17, idinagdag ng Apple ang .oneTimeCode para sa mga code ng kumpirmasyon ng SMS at .shipmentTrackingNumber para sa pagsubaybay ng mga padala. Ang uri na .oneTimeCode ay awtomatikong nakikilala ang mga code mula sa mga mensahe at inaalok ang mga ito sa QuickType bar nang hindi kinakailangang buksan ang Messages app.

KategoryaMga UriiOS
Pagkakakilanlan.name, .givenName, .familyName, .nickname5+
Mga Contact.emailAddress, .telephoneNumber, .fullStreetAddress5+
Mga Account.username, .password, .newPassword5+
Lokasyon.location, .city, .state, .postalCode10+
Data ng card.creditCardNumber, .creditCardSecurityCode12+
Isang-beses na code.oneTimeCode17+

Ang bawat uri ay kinakatawan ng isang string constant, ngunit ang paghahambing ay dapat gawin sa pamamagitan ng operator na ==, hindi sa pamamagitan ng rawValue. Maaaring magdagdag ang iOS ng mga bagong uri sa mga susunod na bersyon, kaya sa switch-case palaging gamitin ang sangay na default.

Pag-aangkop ng keyboard sa uri ng nilalaman

UIKeyboardType at UITextContentType ay nagtutulungan: keyboard type ay tumutukoy sa layout ng keyboard, at content type — mga karagdagang pindutan sa QuickType bar. Kung tinukoy ang content type, maaaring i-override ng iOS ang keyboard type para sa pinakamainam na input. Halimbawa, sa uri na `.emailAddress`, awtomatikong ipinapakita ng keyboard ang simbolo na @ sa pangunahing layer.

Para sa field na may uri na .telephoneNumber, inililipat ng iOS ang keyboard sa layout ng telepono anuman ang nakatakdang keyboard type. Ang pag-uugaling ito ay hindi maaaring i-disable — itinuturing ng system na mas mataas ang priyoridad ng content type kaysa sa tahasang pagsasaayos ng keyboard. Ang mga developer ay hindi kailangang i-duplicate ang mga setting ng parehong pag-aari.

Ang mga uri na .URL at .emailAddress ay nagdaragdag ng mga pindutan na .com at @ sa keyboard ayon sa pagkakabanggit. Ang uri na .decimalPad na may content type na .creditCardNumber ay nagpapakita ng numerikong keyboard na may decimal separator, na maginhawa para sa pagpasok ng mga halaga at numero ng card. Ayon sa Apple Human Interface Guidelines, inaasahan ng gumagamit na ang keyboard ay tumutugma sa uri ng data na inilalagay, hindi ang kabaligtaran.

Ang pagbubukod ay .oneTimeCode — ang uri na ito ay hindi nagbabago ng layout ng keyboard, ngunit ina-activate ang QuickType bar na may mga code mula sa SMS. Nakikita ng gumagamit ang mungkahi ng code sa itaas ng keyboard at maaari itong ipasok sa isang pag-tap. Ang mekanismo ay gumagana lamang para sa mga field na nagiging first responder pagkatapos makatanggap ng SMS.

Awtomatikong pagpuno at keychain

Awtomatikong pagpuno sa iOS ay gumagamit ng Text Content Type upang itugma ang mga input field sa data mula sa iCloud Keychain at ASCredentialProviderViewController. Sinusuri ng system ang lahat ng field sa screen, tinutukoy ang kanilang mga semantikong uri at nag-aalok ng kaukulang nakaimbak na data. Kung walang tamang tinukoy na mga uri, hindi mag-a-activate ang awtomatikong pagpuno.

Para gumana ang awtomatikong pagpuno, tatlong kondisyon ang dapat matugunan. Una — ang field ay dapat may tamang UITextContentType. Pangalawa — ang screen ay dapat maglaman ng hindi bababa sa dalawang field na may magkaibang uri (hal. .username at .password). Pangatlo — ang app ay dapat sumuporta sa Associated Domains na may entitlement na webcredentials para sa pag-sync sa website.

Ang keychain ay gumagamit ng content type para sa pag-uuri ng mga nakaimbak na tala. Kung ang isang field ay minarkahan bilang .password, iniimbak ng system ang inilagay na halaga sa iCloud Keychain at inaalok ito sa susunod na pag-login. Ang mga field na may uri na .creditCardNumber ay awtomatikong nai-save sa Wallet pagkatapos ng kumpirmasyon sa pamamagitan ng Face ID.

Para sa isang-beses na code ng uri na .oneTimeCode, ang iOS 17 ay gumagamit ng bagong mekanismo ng AutoFill OTP na hindi nangangailangan ng direktang access sa SMS. Ang system ay humaharang ng mga code mula sa mga mensahe sa antas ng operating system at ipinapasa ang mga ito sa app sa pamamagitan ng QuickType bar, na iniiwasan ang pagbabasa ng nilalaman ng mensahe ng app.

Mga halimbawa ng paggamit sa Swift

Ang pangunahing pagsasaayos ng Text Content Type sa Swift ay ginagawa sa pamamagitan ng pag-aari na textContentType sa code o sa pamamagitan ng Interface Builder. Sa code, ang pagtatalaga ng isang constant ay tumatagal ng isang linya, at sa IB ang nais na uri ay pinili mula sa drop-down list sa attribute inspector.

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

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

Para sa programmatic na paggawa ng form sa pag-login na may awtomatikong pagpuno, gamitin ang parehong field na may magkaibang content type. Awtomatikong iuugnay ng system ang mga ito bilang username at password. Kung ang app ay sumusuporta sa biometric login, magdagdag ng field na may uri na .username para sa tamang pagkilala ng account.

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

Para sa input field ng isang-beses na code mula sa SMS, tukuyin ang uri na .oneTimeCode. Awtomatikong imumungkahi ng system ang code sa QuickType bar pagkatapos matanggap ito. Ang developer ay hindi kailangang humingi ng pahintulot na magbasa ng SMS o magpatupad ng sariling pag-parse ng mensahe.

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

Para sa iOS 17+, ang uri na .oneTimeCode ay sumusuporta sa awtomatikong pagpuno nang walang focus sa field. Kung ang gumagamit ay nakatanggap ng SMS na may code, inaalok ito ng iOS sa lock screen, at pagkatapos mag-unlock, ang code ay awtomatikong ipinasok sa aktibong field na may kaukulang content type.

Mga rekomendasyon sa pagpili ng uri

Ang pagpili ng tamang uri ay direktang nakakaapekto sa conversion ng form at karanasan ng gumagamit. Mahigpit na inirerekomenda ng Apple na tukuyin ang pinaka-tiyak na uri na magagamit. Halimbawa, para sa field ng pangalan, gamitin ang .givenName, hindi ang generic na .name — ito ay magbibigay-daan sa system na magmungkahi ng awtomatikong pagpuno mula sa mga contact na may tamang pangalan.

Iwasan ang karaniwang pagkakamali — pagtatakda ng .emailAddress para sa username field. Kung ang app ay gumagamit ng email bilang username, tukuyin ang mga uri na .username para sa login field at .password para sa password field. Ang uri na .emailAddress ay inilaan lamang para sa mga field ng input ng email bilang data ng contact, hindi bilang isang identifier.

Para sa mga form na may maraming field ng parehong uri (halimbawa, dalawang email address), gamitin ang pag-aari na .textContentType para sa bawat field, ngunit magdagdag ng iba't ibang mga identifier ng accessibilityIdentifier. Makakatulong ito sa VoiceOver na maipahayag nang tama ang mga field, kahit na ang system ng awtomatikong pagpuno ay maaaring magmungkahi ng parehong opsyon para sa parehong field.

Subukan ang awtomatikong pagpuno sa isang tunay na device na may napunong keychain. Hindi ganap na sinusuportahan ng simulator ang iCloud Keychain, at ang pag-uugali ng awtomatikong pagpuno ay maaaring mag-iba. Ayon sa Apple Developer Forums (2025), ang pinakakaraniwang mga problema sa awtomatikong pagpuno ay lumitaw dahil sa hindi tamang tinukoy na content type.

Mga Madalas Itanong

Ano ang pagkakaiba ng textContentType at keyboardType?

UITextContentType ay tumutukoy sa semantikong uri ng data, habang ang UIKeyboardType ay tumutukoy sa layout ng keyboard. Maaaring i-override ng content type ang keyboard type para sa pinakamainam na input.

Anong mga uri ang nag-a-activate ng awtomatikong pagpuno mula sa iCloud Keychain?

Ang awtomatikong pagpuno ay isina-activate ng mga uri na .username, .password, .newPassword, .emailAddress, .telephoneNumber at .creditCardNumber. Itinutugma ng system ang mga uri na ito sa data mula sa keychain.

Gumagana ba ang Text Content Type sa WKWebView?

Oo, sinusuportahan ng WKWebView ang Text Content Type para sa mga HTML field na may attribute na autocomplete. Awtomatikong itinutugma ng iOS ang mga attribute ng autocomplete sa mga uri ng UITextContentType.

Kailangan bang tukuyin ang content type para sa UITextView?

Oo, ang UITextView ay nagmamana rin ng UITextInputTraits at sinusuportahan ang pag-aari na textContentType. Ito ay kapaki-pakinabang para sa mga multi-line na input field ng data ng contact.

Ano ang mangyayari kung mali ang tinukoy na uri?

Maaaring magmungkahi ang system ng maling data para sa awtomatikong pagpuno o walang imungkahi. Halimbawa, ang isang username field na may uri na .emailAddress ay maaaring magpasok ng email sa halip na username.

Buod

  • Text Content Type — semantikong pagmamarka ng mga input field ng iOS na tumutukoy sa uri ng inaasahang data
  • UITextContentType ay may kasamang higit sa 30 constant para sa iba't ibang kategorya: mga contact, account, lokasyon, data ng pagbabayad
  • Keyboard ay awtomatikong umaangkop sa content type, na nagpapakita ng mga angkop na character at layout
  • Awtomatikong pagpuno mula sa iCloud Keychain ay isina-activate lamang sa tamang tinukoy na mga uri ng field
  • Mekanismo ng OTP sa iOS 17+ ay nagbibigay-daan sa awtomatikong pagpasok ng mga code mula sa SMS nang walang access sa mga mensahe
  • VoiceOver ay gumagamit ng content type para sa tamang pagpapahayag ng layunin ng field
  • Rekomendasyon — tukuyin ang pinaka-tiyak na uri para sa bawat field at subukan ang awtomatikong pagpuno sa isang tunay na device

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din