Autocapitalization — egy iOS mechanizmus, amely automatikusan nagybetűvé alakítja a bevitt szöveg első betűjét bizonyos kontextusokban. Az UIKit a autocapitalizationType tulajdonságot biztosítja a UITextInputTraits protokollban négy móddal: none, words, sentences és allCharacters. Az Apple Text Programming Guide (2025) szerint az automatikus nagybetűsítés megfelelő beállítása javítja a felhasználói élményt és csökkenti a kézi javítások számát gépeléskor. Használja a sentences módot a legtöbb szövegmezőhöz és a none módot a felhasználónevekhez és jelszavakhoz.
Főbb pontok
Autocapitalization (automatikus nagybetűsítés) — az iOS operációs rendszer egy funkciója, amely automatikusan nagybetűvé alakítja a szöveg első karakterét bizonyos feltételek bekövetkeztekor. A mechanizmust az autocapitalizationType tulajdonság vezérli, amely minden UITextInputTraits protokollt implementáló elem számára elérhető: UITextField, UITextView és UISearchBar.
A funkció az iOS szövegmotor szintjén működik, és minden karakter bevitelének pillanatában aktiválódik. A rendszer elemzi a kurzor pozícióját és a környező szöveget, hogy meghatározza, az aktuálisan bevitt karaktert nagybetűvé kell-e alakítani. Ha a feltétel teljesül, az iOS automatikusan lecseréli a kisbetűt nagybetűre, mielőtt az megjelenne a mezőben.
Az Apple Human Interface Guidelines (2025) szerint az automatikus nagybetűsítés egy tágabb prediktív beviteli rendszer része, amely magában foglalja az automatikus javítást és a prediktív gépelést is. A felhasználó ezeket a funkciókat globálisan kikapcsolhatja a rendszerbeállításokban (Beállítások > Általános > Billentyűzet), de a fejlesztő is kezeli őket az egyes mezők szintjén.
Az automatikus javítással ellentétben az automatikus nagybetűsítés nem használ nyelvi modellt — egyszerű szabályok szerint működik: pont és szóköz után, a szöveg elején, újsor karakter után. Kivétel a words mód, ahol minden szó első betűje nagybetűvé válik, kontextustól függetlenül.
UITextAutocapitalizationType — négy érték felsorolása, amelyek meghatározzák az automatikus nagybetűsítés stratégiáját. Minden mód egy adott típusú szövegmezőhöz készült és a felhasználói élmény egy konkrét feladatát oldja meg.
A .none mód teljesen kikapcsolja az automatikus nagybetűsítést. Minden karakter abban a kis- és nagybetűs formában kerül bevitelre, ahogy a felhasználó gépeli. Ez a mód kötelező a jelszómezőkhöz, e-mail címekhez, becenevekhez, keresési lekérdezésekhez és minden olyan mezőhöz, ahol a kis- és nagybetűk számítanak a szerveren történő adatfeldolgozásnál.
A .words mód minden bevitt szó első betűjét nagybetűvé teszi. A rendszer a szóhatárt szóköz alapján határozza meg, és a szóköz utáni első karaktert nagybetűvé alakítja. A mód kényelmes keresztnév, vezetéknév, városnevek, utcanevek és más olyan mezők beviteléhez, ahol minden szónak nagybetűvel kell kezdődnie.
A .sentences mód — a leggyakoribb, és alapértelmezetten használatos a legtöbb szövegmezőhöz. A rendszer nagybetűvé teszi az első betűt pont, felkiáltójel vagy kérdőjel után, amelyet szóköz követ. A mód ideális jegyzetek, üzenetek, megjegyzések és más többsoros szövegek beviteléhez.
A .allCharacters mód minden bevitt karaktert nagybetűvé alakít. Ez a mód egyenértékű a Caps Lock folyamatos lenyomásával, és olyan mezőkhöz használatos, ahol az adatoknak nagybetűvel kell íródniuk: irányítószámok, országkódok, rövidítések, rendelésszámok. Óvatosan kell alkalmazni, mivel a nagybetűvel írt szöveget nehezebb olvasni.
| Mód | Leírás | Beviteli példa | Javaslat |
|---|---|---|---|
| .none | Nincs változás | john@mail.com | E-mail, jelszavak, keresés |
| .words | Minden szó | Nagy Péter | Név, cím, város |
| .sentences | Mondat eleje | Szia. Hogy vagy? | Üzenetek, jegyzetek |
| .allCharacters | Minden nagybetű | ABC-123 | Kódok, indexek |
Az automatikus nagybetűsítés mechanizmusa a billentyűlenyomás feldolgozásának szakaszában aktiválódik, még mielőtt a karakter megjelenne a képernyőn. Amikor a felhasználó megnyom egy billentyűt, a UITextInputTraits ellenőrzi a kurzor aktuális pozícióját, és alkalmazza a kis- és nagybetűs átalakítás szabályát a beállított autocapitalizationType szerint.
A .sentences módhoz a rendszer trigger karaktereket követ: pont (.), felkiáltójel (!), kérdőjel (?), valamint az újsor karaktert ( ) bekapcsolt mód esetén. A trigger karakter és az azt követő szóköz észlelése után a rendszer beállít egy „nagybetű várakozás” jelzőt a következő bevitt karakter számára.
A .words mód a szóköz karaktert követi triggermódként. Minden szóköz után a rendszer nagybetűt vár a következő szóhoz. Vannak azonban kivételek: kötőjel, aposztróf és más írásjelek után a szón belül nem kerül be nagybetű. Például „O’Brien” helyes marad.
Fontos jellemző — az automatikus nagybetűsítés csak a szó első karakterére működik. Ha a felhasználó olyan szót ír be, amely nagybetűket tartalmaz a közepén (például iPhone vagy macOS), a rendszer nem változtatja meg őket, mivel az átalakítás csak a trigger utáni első karakterre vonatkozik. Ez azt jelenti, hogy a nem szabványos kis- és nagybetűzésű márka- és terméknevek nem sérülnek.
Az automatikus nagybetűsítést ki kell kapcsolni azokban a mezőkben, ahol a kis- és nagybetűk számítanak az adatok helyes feldolgozásához. Főbb esetek: e-mail címek, becenevek és felhasználónevek, jelszavak, keresési lekérdezések, URL címek, megerősítő kódok, IMEI és sorozatszámok mezői. Mindezekben az esetekben a kis- és nagybetűk automatikus megváltoztatása hibákhoz vezet a szerveren történő feldolgozás során.
Keresősávokhoz (UISearchBar) az automatikus nagybetűsítés alapértelmezetten ki van kapcsolva, ami megfelel a felhasználók elvárásainak. A keresési lekérdezés bármilyen kis- és nagybetűs formában beírható, és a szerver általában maga alakítja kisbetűssé. Ha bekapcsolja az automatikus nagybetűsítést a kereséshez, a felhasználónak minden alkalommal kézzel kell javítania a nagybetűt a lekérdezés elején.
Regisztrációs űrlapokban a username vagy nickname mezőnek .none móddal kell rendelkeznie, mivel sok rendszer megkülönbözteti a kis- és nagybetűket a felhasználónevekben. Az e-mail mezőnek is automatikus nagybetűsítés nélkül kell lennie — bár a domain nevek nem érzékenyek a kis- és nagybetűkre, az e-mail helyi része elméletileg megkülönböztetheti a kis- és nagybetűket, bár a gyakorlatban ez ritkán fordul elő.
Az Apple Developer Documentation szerint a secureTextEntry (jelszavak) mezők automatikusan öröklik az autocapitalizationType = .none értéket, még akkor is, ha a fejlesztő kifejezetten más értéket állított be. A rendszer a legmagasabb prioritást élvezi a védett bevitelnél, és figyelmen kívül hagy minden olyan kísérletet, amely az automatikus nagybetűsítés bekapcsolására irányul egy jelszómezőnél.
Az automatikus nagybetűsítés konfigurálása Swift-ben az autocapitalizationType tulajdonságon keresztül történik. A tulajdonság elérhető a UITextField, UITextView és UISearchBar számára. Az érték beállítható kódban és az Interface Builder attribútum-inspectorában is, ahol a mód neve Capitalization.
let nameField = UITextField()
nameField.autocapitalizationType = .words
let emailField = UITextField()
emailField.autocapitalizationType = .none
Egy kapcsolatfelvételi űrlaphoz állítson be minden mezőt a szemantikájának megfelelően: név — .words, e-mail — .none, üzenet — .sentences. Ez a kombináció biztosítja a legjobb felhasználói élményt és minimalizálja a kis- és nagybetűk kézi javításának szükségességét.
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
}
}
A mód programozott megváltoztatásához futásidőben használja a UITextFieldDelegate delegáltat. Például, ha egy mező különböző kontextusokban használható, változtassa meg az autocapitalizationType-ot a textFieldDidBeginEditing metódusban az űrlap aktuális munkamódjától függően.
func textFieldDidBeginEditing(_ textField: UITextField) {
if textField === codeField {
textField.autocapitalizationType = .allCharacters
}
}
Az automatikus nagybetűsítés függ a felhasználó billentyűzetén beállított beviteli nyelvtől. Különböző nyelveknél a kis- és nagybetűs átalakítás szabályai eltérőek lehetnek. Például a török nyelvben az „i” betű nagybetűs formában „İ” (ponttal), az „I” pedig kisbetűs formában „ı” (pont nélkül) lesz. Az iOS ezeket a jellemzőket automatikusan figyelembe veszi.
Az orosz nyelvhez az automatikus nagybetűsítés ugyanazokkal a szabályokkal működik, mint az angolnál: nagybetű pont után, a mondat elején és új sor után. Problémák adódhatnak a „jo” betűvel — bár szerepel a rendszer szótárában, nem minden billentyűzetkiosztás jeleníti meg a fő rétegen, és az automatikus nagybetűsítés helyesen alakítja nagybetűvé.
A kínai, japán és koreai nyelvekhez az automatikus nagybetűsítés nem alkalmazható, mivel ezekben a nyelvekben nincs kis- és nagybetű fogalom. Az autocapitalizationType módot a rendszer figyelmen kívül hagyja a megfelelő billentyűzetek használatakor, és a mező ugyanúgy viselkedik, mint a .none módban, a beállított értéktől függetlenül.
Az arab nyelvhez és héberhez az automatikus nagybetűsítés szintén nem alkalmazható, mivel ezek a nyelvek saját írásrendszert használnak kis- és nagybetűkre való felosztás nélkül. Az iOS rendszer helyesen határozza meg a beviteli nyelvet, és figyelmen kívül hagyja az automatikus nagybetűsítés beállításait azoknál a nyelveknél, ahol ez a fogalom nem létezik.
Gyakran ismételt kérdések
Igen, az autocapitalizationType tulajdonság bármikor megváltoztatható, még akkor is, ha a mező már aktív. A változás a következő karakter bevitelekor lép életbe.
Igen, a isSecureTextEntry = true mezőkhöz a rendszer automatikusan autocapitalizationType = .none értéket állít be. Ezt a viselkedést programozottan nem lehet megváltoztatni.
Igen, a UITextView teljes mértékben támogatja az autocapitalizationType-ot. Ez különösen hasznos a többsoros mezőknél, ahol a .sentences mód a legtermészetesebben működik.
Ha egy mező nincs secureTextEntry-ként megjelölve, de jelszó bevitelére használják, az automatikus nagybetűsítés megváltoztathatja a jelszót. Mindig kapcsolja ki azokban a mezőkben, ahol a kis- és nagybetűk számítanak.
A szimulátoron az automatikus nagybetűsítés a Mac fizikai billentyűzetén keresztül működik, és eltérően viselkedhet. Tesztelje valódi eszközön a helyes működéshez.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is