Text Content Type: apa itu, tipe semantik dan UIKit

Penulis: IT Sectr Diterbitkan: 2026-07-07 Waktu membaca: 8 mnt

Text Content Type — adalah mekanisme iOS yang memberi tahu sistem data apa yang diharapkan oleh bidang teks. UIKit menyediakan konstanta UITextContentType untuk menandai bidang input: email, kata sandi, telepon, nama pengguna, dan puluhan tipe semantik lainnya. Menurut Apple Human Interface Guidelines (2025), pengaturan content type yang benar meningkatkan kecepatan pengisian formulir hingga 40% berkat pengisian otomatis dan keyboard adaptif. Gunakan UITextContentType di setiap bidang teks — ini meningkatkan pengalaman pengguna dan mengurangi jumlah kesalahan input.

Poin Utama

  • Text Content Type — label semantik untuk UITextField dan UITextView yang menunjukkan tipe data yang diharapkan
  • UITextContentType berisi lebih dari 30 tipe yang telah ditentukan: email, telepon, kata sandi, alamat, nama depan, nama belakang, dan lainnya
  • Pengisian otomatis hanya berfungsi dengan content type yang ditentukan dengan benar — sistem mencocokkan bidang dengan data dari gantungan kunci
  • Keyboard beradaptasi dengan tipe: untuk email menampilkan @, untuk telepon — tata letak numerik
  • Keamanan — untuk kata sandi dan kode sekali pakai, gunakan tipe yang sesuai untuk mengaktifkan integrasi dengan iCloud Keychain

Apa itu Text Content Type?

Text Content Type (UITextContentType) — adalah properti bidang teks UIKit yang memberi tahu iOS data semantik apa yang diharapkan oleh bidang input. Sistem menggunakan informasi ini untuk dua tujuan: memilih tata letak keyboard yang sesuai dan mengaktifkan mekanisme pengisian otomatis dari gantungan kunci (iCloud Keychain).

Di iOS 5, versi pertama tipe semantik diperkenalkan, dan di iOS 17, kumpulan UITextContentType diperluas menjadi 34 konstanta, termasuk tipe baru untuk kode sekali pakai, kode pos, dan nama jalan. Setiap konstanta mewakili string yang dicocokkan sistem dengan aturan pemrosesan internal.

Mekanisme ini bekerja pada tingkat UITextInputTraits — protokol yang diwarisi oleh UITextField, UITextView, dan UISearchBar. Ini berarti content type tersedia di semua elemen input standar tanpa konfigurasi tambahan.

Menurut WWDC 2024 Session 101, Apple merekomendasikan untuk menentukan content type untuk setiap bidang teks di antarmuka — bahkan jika pengisian otomatis tidak diantisipasi. Label itu sendiri membantu VoiceOver mengumumkan tujuan bidang dengan benar bagi pengguna dengan keterbatasan fisik.

Tipe UITextContentType yang tersedia

UIKit menyediakan hierarki tipe yang dibagi ke dalam kategori. Grup utama mencakup data identifikasi (nama depan, nama belakang, nama pengguna), informasi kontak (email, telepon, alamat), dan akun (kata sandi, kode sekali pakai). Setiap grup mengaktifkan mekanisme pengisian otomatis yang berbeda.

Data kontak

Grup tipe kontak mencakup `.emailAddress`, `.telephoneNumber`, `.fullStreetAddress`, dan `.city`. Tipe-tipe ini mengaktifkan pengisian otomatis dari kontak dan iCloud Keychain. Bidang dengan tipe `.emailAddress` secara otomatis menyarankan alamat email yang pernah dimasukkan sebelumnya, dan `.telephoneNumber` — nomor telepon dari buku alamat.

Akun

Untuk bidang masuk, tersedia .username, .password, dan .newPassword. Tipe .username mengaktifkan pengelola kata sandi iCloud yang menawarkan akun yang tersimpan. Bidang dengan tipe .newPassword memulai pembuatan kata sandi aman melalui iCloud Keychain pada input pertama.

Tipe khusus iOS 17+

Mulai dari iOS 17, Apple menambahkan .oneTimeCode untuk kode konfirmasi SMS dan .shipmentTrackingNumber untuk melacak kiriman. Tipe .oneTimeCode secara otomatis mengenali kode dari pesan dan menawarkannya di bilah QuickType tanpa perlu membuka aplikasi Messages.

KategoriTipeiOS
Identifikasi.name, .givenName, .familyName, .nickname5+
Kontak.emailAddress, .telephoneNumber, .fullStreetAddress5+
Akun.username, .password, .newPassword5+
Lokasi.location, .city, .state, .postalCode10+
Data kartu.creditCardNumber, .creditCardSecurityCode12+
Kode sekali pakai.oneTimeCode17+

Setiap tipe diwakili oleh konstanta string, tetapi perbandingannya harus dilakukan melalui operator ==, bukan melalui rawValue. iOS dapat menambahkan tipe baru di versi mendatang, oleh karena itu dalam switch-case selalu gunakan cabang default.

Adaptasi keyboard dengan tipe konten

UIKeyboardType dan UITextContentType bekerja bersama: keyboard type menentukan tata letak keyboard, dan content type — tombol tambahan di bilah QuickType. Jika content type ditentukan, iOS dapat mengganti keyboard type untuk input yang optimal. Misalnya, dengan tipe `.emailAddress`, keyboard secara otomatis menampilkan simbol @ di lapisan utama.

Untuk bidang dengan tipe .telephoneNumber, iOS mengalihkan keyboard ke tata letak telepon terlepas dari keyboard type yang diatur. Perilaku ini tidak dapat dinonaktifkan — sistem menganggap prioritas content type lebih tinggi daripada konfigurasi keyboard eksplisit. Pengembang tidak perlu menduplikasi pengaturan kedua properti.

Tipe .URL dan .emailAddress masing-masing menambahkan tombol .com dan @ ke keyboard. Tipe .decimalPad dengan content type .creditCardNumber menampilkan keyboard numerik dengan pemisah desimal, yang nyaman untuk memasukkan jumlah dan nomor kartu. Menurut Apple Human Interface Guidelines, pengguna mengharapkan keyboard sesuai dengan tipe data yang dimasukkan, bukan sebaliknya.

Pengecualian adalah .oneTimeCode — tipe ini tidak mengubah tata letak keyboard, tetapi mengaktifkan bilah QuickType dengan kode dari SMS. Pengguna melihat saran kode di atas keyboard dan dapat memasukkannya dengan satu ketukan. Mekanisme ini hanya berfungsi untuk bidang yang menjadi first responder setelah menerima SMS.

Pengisian otomatis dan gantungan kunci

Pengisian otomatis di iOS menggunakan Text Content Type untuk mencocokkan bidang input dengan data dari iCloud Keychain dan ASCredentialProviderViewController. Sistem menganalisis semua bidang di layar, menentukan tipe semantiknya, dan menawarkan data tersimpan yang sesuai. Tanpa tipe yang ditentukan dengan benar, pengisian otomatis tidak akan aktif.

Untuk pengisian otomatis berfungsi, tiga kondisi harus dipenuhi. Pertama — bidang harus memiliki UITextContentType yang benar. Kedua — layar harus berisi setidaknya dua bidang dengan tipe berbeda (misalnya, .username dan .password). Ketiga — aplikasi harus mendukung Associated Domains dengan entitlement webcredentials untuk sinkronisasi dengan situs web.

Gantungan kunci (Keychain) menggunakan content type untuk mengklasifikasikan catatan yang tersimpan. Jika bidang ditandai sebagai .password, sistem menyimpan nilai yang dimasukkan ke iCloud Keychain dan menawarkannya saat masuk berikutnya. Bidang dengan tipe .creditCardNumber secara otomatis disimpan di Wallet setelah konfirmasi melalui Face ID.

Untuk kode sekali pakai tipe .oneTimeCode, iOS 17 menggunakan mekanisme AutoFill OTP baru yang tidak memerlukan akses langsung ke SMS. Sistem mencegat kode dari pesan di tingkat sistem operasi dan meneruskannya ke aplikasi melalui bilah QuickType, tanpa perlu membaca konten pesan oleh aplikasi.

Contoh penggunaan di Swift

Konfigurasi dasar Text Content Type di Swift dilakukan melalui properti textContentType dalam kode atau melalui Interface Builder. Dalam kode, penugasan konstanta memakan satu baris, dan di IB tipe yang diinginkan dipilih dari daftar drop-down di inspector atribut.

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

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

Untuk pembuatan formulir masuk secara terprogram dengan pengisian otomatis, gunakan kedua bidang dengan content type yang berbeda. Sistem akan secara otomatis menghubungkannya sebagai nama pengguna dan kata sandi. Jika aplikasi mendukung masuk biometrik, tambahkan bidang dengan tipe .username untuk pengenalan akun yang benar.

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

Untuk bidang input kode sekali pakai dari SMS, tentukan tipe .oneTimeCode. Sistem akan secara otomatis menyarankan kode di bilah QuickType setelah menerimanya. Pengembang tidak perlu meminta izin membaca SMS atau mengimplementasikan parser pesan sendiri.

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

Untuk iOS 17+, tipe .oneTimeCode mendukung pengisian otomatis tanpa fokus pada bidang. Jika pengguna menerima SMS dengan kode, iOS menawarkannya di layar kunci, dan setelah membuka kunci, kode secara otomatis dimasukkan ke bidang aktif dengan content type yang sesuai.

Rekomendasi pemilihan tipe

Pemilihan tipe yang benar secara langsung memengaruhi konversi formulir dan pengalaman pengguna. Apple sangat merekomendasikan untuk menentukan tipe yang paling spesifik dari yang tersedia. Misalnya, untuk bidang nama, gunakan .givenName, bukan .name umum — ini akan memungkinkan sistem menawarkan pengisian otomatis dari kontak dengan nama yang benar.

Hindari kesalahan umum — mengatur .emailAddress untuk bidang username. Jika aplikasi menggunakan email sebagai nama pengguna, tentukan tipe .username untuk bidang masuk dan .password untuk bidang kata sandi. Tipe .emailAddress ditujukan khusus untuk bidang input email sebagai data kontak, bukan sebagai pengidentifikasi.

Untuk formulir dengan beberapa bidang dengan tipe yang sama (misalnya, dua alamat email), gunakan properti .textContentType untuk setiap bidang, tetapi tambahkan pengidentifikasi accessibilityIdentifier yang berbeda. Ini akan membantu VoiceOver mengumumkan bidang dengan benar, meskipun sistem pengisian otomatis mungkin menawarkan opsi yang sama untuk kedua bidang.

Uji pengisian otomatis pada perangkat nyata dengan gantungan kunci yang terisi. Simulator tidak mendukung iCloud Keychain sepenuhnya, dan perilaku pengisian otomatis mungkin berbeda. Menurut Apple Developer Forums (2025), masalah paling umum dengan pengisian otomatis justru disebabkan oleh content type yang tidak ditentukan dengan benar.

Pertanyaan yang Sering Diajukan

Apa perbedaan antara textContentType dan keyboardType?

UITextContentType menentukan tipe data semantik, sedangkan UIKeyboardType menentukan tata letak keyboard. Content type dapat mengganti keyboard type untuk input yang optimal.

Tipe apa yang mengaktifkan pengisian otomatis dari iCloud Keychain?

Pengisian otomatis diaktifkan oleh tipe .username, .password, .newPassword, .emailAddress, .telephoneNumber, dan .creditCardNumber. Sistem mencocokkan tipe ini dengan data dari gantungan kunci.

Apakah Text Content Type berfungsi di WKWebView?

Ya, WKWebView mendukung Text Content Type untuk bidang HTML dengan atribut autocomplete. iOS secara otomatis mencocokkan atribut autocomplete dengan tipe UITextContentType.

Apakah perlu menentukan content type untuk UITextView?

Ya, UITextView juga mewarisi UITextInputTraits dan mendukung properti textContentType. Ini berguna untuk bidang input data kontak multi-baris.

Apa yang terjadi jika tipe ditentukan secara salah?

Sistem dapat menyarankan data yang salah untuk pengisian otomatis atau tidak menyarankan apa pun. Misalnya, bidang username dengan tipe .emailAddress dapat memasukkan email alih-alih nama pengguna.

Kesimpulan

  • Text Content Type — penandaan semantik bidang input iOS yang menentukan tipe data yang diharapkan
  • UITextContentType mencakup lebih dari 30 konstanta untuk berbagai kategori: kontak, akun, lokasi, data pembayaran
  • Keyboard secara otomatis beradaptasi dengan content type, menampilkan karakter dan tata letak yang sesuai
  • Pengisian otomatis dari iCloud Keychain hanya aktif dengan tipe bidang yang ditentukan dengan benar
  • Mekanisme OTP di iOS 17+ memungkinkan penyisipan kode dari SMS secara otomatis tanpa akses ke pesan
  • VoiceOver menggunakan content type untuk mengumumkan tujuan bidang dengan benar
  • Rekomendasi — tentukan tipe yang paling spesifik untuk setiap bidang dan uji pengisian otomatis pada perangkat nyata

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga