Autocapitalization: шта је то, врсте и UITextAutocapitalizationType

Аутор: IT Sectr Објављено: 2026-07-08 Време читања: 7 мин

Autocapitalization је механизам iOS-а који аутоматски претвара прво слово унетог текста у велико у одређеним контекстима. UIKit пружа својство autocapitalizationType у протоколу UITextInputTraits са четири режима: none, words, sentences и allCharacters. Према Apple Text Programming Guide (2025), правилно подешавање аутоматске капитализације побољшава корисничко искуство и смањује број ручних исправки при уносу. Користите режим sentences за већину текстуалних поља и none за корисничка имена и лозинке.

Главно

  • Autocapitalization — аутоматско претварање првог слова у велико у UIKit поља за унос
  • UITextAutocapitalizationType укључује четири режима: none, words, sentences и allCharacters
  • Режим sentences — најчешћи, чини прво слово сваке реченице великим
  • Режим words — чини прво слово сваке речи великим, згодно за поља имена и презимена
  • Режим none — обавезан за поља лозинки, email-а, претрага и кодова потврде

Шта је Autocapitalization?

Autocapitalization (аутоматска капитализација) је функција оперативног система iOS која аутоматски претвара први знак текста у велико слово када се испуне одређени услови. Механизмом се управља преко својства autocapitalizationType, доступног за све елементе који имплементирају протокол UITextInputTraits: UITextField, UITextView и UISearchBar.

Функција ради на нивоу текстуалног погона iOS-а и активира се у тренутку уноса сваког знака. Систем анализира позицију курсора и околни текст да би утврдио да ли треба да претвори тренутни унети знак у велики. Ако се услов испуни, iOS аутоматски замењује мало слово великим пре него што се прикаже у пољу.

Према Apple Human Interface Guidelines (2025), аутоматска капитализација је део ширег система предиктивног уноса, који такође укључује аутоматску корекцију и предиктивни унос текста. Корисник може искључити све ове функције глобално у подешавањима система (Подешавања > Опште > Тастатура), али програмер њима управља и на нивоу конкретних поља.

За разлику од аутоматске корекције, аутоматска капитализација не користи језички модел — ради по једноставним правилима: после тачке и размака, на почетку текста, после знака новог реда. Изузетак је режим words, где прво слово сваке речи постаје велико, без обзира на контекст.

Режими аутоматске капитализације

UITextAutocapitalizationType је набрајање са четири вредности које дефинишу стратегију аутоматског претварања регистра. Сваки режим је намењен одређеној врсти текстуалних поља и решава конкретан задатак корисничког искуства.

None — без аутоматске капитализације

Режим .none потпуно искључује аутоматско претварање регистра. Сви знакови се уносе у оном регистру у којем их корисник куца. Овај режим је обавезан за поља лозинки, email адреса, корисничких имена, претрага и свих поља где регистар има значај за обраду података на серверу.

Words — свака реч са великим словом

Режим .words чини прво слово сваке унете речи великим. Систем одређује границу речи по размаку и претвара први знак после размака у велики. Режим је згодан за поља уноса имена, презимена, назива градова, улица и других поља где свака реч треба да почне великим словом.

Sentences — почетак реченице

Режим .sentences — најчешћи и користи се подразумевано за већину текстуалних поља. Систем чини великим прво слово после тачке, узвичника или упитника, иза којих следи размак. Режим је идеалан за поља уноса белешки, порука, коментара и других вишередних текстова.

All Characters — сва велика слова

Режим .allCharacters претвара све унете знакове у велика слова. Овај режим је еквивалентан сталном притиску Caps Lock-а и користи се за поља где подаци треба да буду у великим словима: поштански бројеви, кодови земаља, скраћенице, бројеви поруџбина. Треба га примењивати са опрезом, јер је текст у великим словима тежи за читање.

РежимОписПример уносаПрепорука
.noneБез променаjohn@mail.comEmail, лозинке, претрага
.wordsСвака речИван ПетровићИме, адреса, град
.sentencesПочетак реченицеЗдраво. Како си?Поруке, белешке
.allCharactersСва велика словаABC-123Кодови, индекси

Како ради аутоматско велико слово

Механизам аутоматске капитализације активира се у фази обраде притиска тастера, пре приказивања знака на екрану. Када корисник притисне тастер, UITextInputTraits проверава тренутну позицију курсора и примењује правило претварања регистра у складу са подешеним autocapitalizationType.

За режим .sentences, систем прати окидачке знакове: тачку (.), узвичник (!), упитник (?), као и знак новог реда ( ) када је режим укључен. Након откривања окидачког знака и следећег размака, систем поставља заставицу „очекивање великог слова" за следећи унети знак.

Режим .words прати знак размака као окидач. Након сваког размака, систем очекује велико слово за следећу реч. Међутим, постоје изузеци: после цртице, апострофа и других интерпункцијских знакова унутар речи, велико слово се не убацује. На пример, „О'Брајен" ће остати коректно.

Важна карактеристика — аутоматска капитализација ради само за први знак речи. Ако корисник уноси реч која садржи велика слова у средини (на пример, iPhone или macOS), систем их не мења, јер се претварање примењује само на први знак после окидача. То значи да називи брендова и производа са нестандардним регистром неће бити оштећени.

Када искључити аутоматску капитализацију

Аутоматску капитализацију треба искључити у пољима где регистар знакова има значај за коректну обраду података. Главни случајеви: поља за унос email адреса, корисничких имена, лозинки, претрага, URL адреса, кодова потврде, IMEI и серијских бројева. У свим овим случајевима, аутоматска промена регистра ће довести до грешака при обради на серверу.

За траке за претрагу (UISearchBar), аутоматска капитализација је подразумевано искључена, што одговара очекивањима корисника. Упит за претрагу може се унети у било ком регистру, а сервер га обично сам претвара у мала слова. Ако укључите аутоматску капитализацију за претрагу, корисник ће сваки пут морати ручно да исправља велико слово на почетку упита.

У обрасцима за регистрацију, поље username или nickname треба да има режим .none, јер многи системи разликују регистар знакова у корисничким именима. Поље email такође треба да буде без аутоматске капитализације — иако имена домена нису осетљива на регистар, локални део email-а теоретски може разликовати регистар, иако је то у пракси ретко.

Према Apple Developer Documentation, поља са secureTextEntry (лозинке) аутоматски наслеђују autocapitalizationType = .none, чак и ако је програмер експлицитно поставио другу вредност. Систем има највиши приоритет за заштићени унос и игнорише све покушаје укључивања аутоматске капитализације за поље лозинке.

Примери подешавања у Swift-у

Подешавање аутоматске капитализације у Swift-у се врши преко својства autocapitalizationType. Својство је доступно за UITextField, UITextView и UISearchBar. Вредност се може поставити како у коду, тако и преко Interface Builder-а у инспектору атрибута, где се режим назива Capitalization.

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

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

За образац за контакт подесите свако поље у складу са његовом семантиком: име — .words, email — .none, порука — .sentences. Ова комбинација обезбеђује најбоље корисничко искуство и минимизира потребу за ручним исправљањем регистра.

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

За програмску промену режима у рантајму користите делегата UITextFieldDelegate. На пример, ако се поље може користити у различитим контекстима, мењајте autocapitalizationType у методи textFieldDidBeginEditing у зависности од тренутног режима рада обрасца.

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

Локализација и аутоматска капитализација

Аутоматска капитализација зависи од језика уноса постављеног на тастатури корисника. За различите језике, правила претварања регистра могу се разликовати. На пример, у турском језику слово „i" у великом регистру постаје „İ" (са тачком), а „I" у малом регистру постаје „ı" (без тачке). iOS аутоматски узима у обзир ове особености.

За српски језик, аутоматска капитализација ради по истим правилима као и за енглески: велико слово после тачке, на почетку реченице и после новог реда.

За кинески, јапански и корејски језик, аутоматска капитализација се не примењује, јер ови језици немају концепт регистра. Режим autocapitalizationType систем игнорише при коришћењу одговарајућих тастатура, а поље се понаша исто као у режиму .none, без обзира на подешену вредност.

За арапски језик и хебрејски, аутоматска капитализација се такође не примењује, јер ови језици користе сопствени систем писања без поделе на мала и велика слова. iOS систем коректно одређује језик уноса и игнорише подешавања аутоматске капитализације за језике где овај концепт не постоји.

Често постављана питања

Могу ли променити режим аутоматске капитализације динамички?

Да, својство autocapitalizationType се може мењати у било ком тренутку, чак и када је поље већ активно. Промена ступа на снагу при следећем уносу знака.

Да ли secureTextEntry искључује аутоматску капитализацију?

Да, за поља са isSecureTextEntry = true, систем аутоматски поставља autocapitalizationType = .none. Програмска промена овог понашања није могућа.

Да ли аутоматска капитализација ради за UITextView?

Да, UITextView у потпуности подржава autocapitalizationType. Ово је посебно корисно за вишередна поља, где режим .sentences ради најприродније.

Како аутоматска капитализација утиче на лозинку?

Ако поље није означено као secureTextEntry, али се користи за унос лозинке, аутоматска капитализација може променити лозинку. Увек је искључите за поља где регистар има значај.

Постоји ли разлика између симулатора и уређаја?

На симулатору, аутоматска капитализација ради преко хардверске тастатуре Mac-а и може се понашати другачије. Тестирајте на стварном уређају за исправан рад.

Закључци

  • Autocapitalization — функција аутоматског претварања првог знака у велики у пољима за унос iOS-а
  • Четири режима UITextAutocapitalizationType: none, words, sentences, allCharacters
  • Режим .sentences одговара за већину поља, активира се после тачке, !, ? и новог реда
  • Режим .none је обавезан за email, лозинке, претрагу и поља осетљива на регистар
  • Режим .words је оптималан за поља имена, презимена, града и адресе
  • Локализација — за турски језик важи посебно правило слова İ/ı
  • Препорука — подешавајте аутоматску капитализацију за свако поље у складу са његовом семантиком

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође