Autocorrection — суштина, механизми и UITextAutocorrectionType

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

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

Главно

  • Autocorrection — системски механизам iOS-а за аутоматско исправљање правописних грешака при куцању текста
  • UITextAutocorrectionType подржава три режима: .default, .yes и .no за свако поље појединачно
  • Речник аутокорекције се заснива на системском речнику iOS-а и језичком моделу обученом на уређају
  • Safe Keyboard — заштићена тастатура која искључује аутокорекцију за поља лозинки и финансијских података
  • Локализација — аутокорекција ради за све подржане језике тастатуре, укључујући додатне распореде

Шта је Autocorrection?

Autocorrection (аутокорекција) је функција оперативног система iOS која аутоматски замењује унете речи потенцијално исправним варијантама када се открије правописна грешка. Механизам ради на нивоу текстualnih поља UIKit-а и доступан је у свим апликацијама које користе стандардне елементе UITextField и UITextView.

У основи аутокорекције је језички модел обучен на милионима текстуалних примера за сваки подржани језик. Модел ради потпуно на уређају (on-device), што гарантује поверљивост унетих података — текст се не шаље на Apple сервере ради анализе. Са сваким ажурирањем iOS-а, модел се прецизира и проширује новим речима и правилима.

Аутокорекција се активира аутоматски за сва текстуална поља, ако је програмер није изричито искључио. Корисник може потпуно искључити аутокорекцију у системским подешавањима (Подешавања > Опште > Тастатура > Аутокорекција), али програмер такође може управљати овим понашањем за појединачна поља преко својства autocorrectionType.

Према WWDC 2023 Session 204, Apple је представио побољшани језички модел аутокорекције заснован на Transformer-у, који узима у обзир контекст целе реченице, а не само последње речи. Ово је омогућило смањење броја лажних исправки за 30% у поређењу са претходним моделом заснованим на n-gramима.

Режими аутокорекције у iOS-у

UITextAutocorrectionType је набрајање са три вредности које одређују понашање аутокорекције за одређено текстуално поље. Свака вредност се поставља преко својства autocorrectionType, доступног у Interface Builder-у и у коду при креирању поља.

Режим .default

Вредност .default значи да поље наслеђује глобално подешавање аутокорекције из системских параметара тастатуре. Овај режим је препоручен за већину текстуалних поља, јер поштује избор корисника. Ако је корисник искључио аутокорекцију у подешавањима, поље са .default је такође неће користити.

Режим .yes

Вредност .yes принудно укључује аутокорекцију за поље без обзира на системско подешавање. Овај режим треба користити само за поља где је правописна тачност критична — на пример, у уређивачима текста, пољима за белешке или поруке. Apple препоручује опрезну примену .yes, јер принудно укључивање може бити у супротности са очекивањима корисника.

Режим .no

Вредност .no искључује аутокорекцију за одређено поље. Овај режим је обавезан за поља лозинки (secure text entry), адресе е-поште, кодове потврде и упите претраге. У овим пољима аутокорекција није само бескорисна, већ и штетна — може заменити тачно унете податке погрешним.

РежимВредностПрепорука
.defaultНаслеђује системско подешавањеВећина поља за унос
.yesПринудно укљученаУређивачи текста, белешке
.noПринудно искљученаЛозинке, е-пошта, претрага, кодови

Језички модел и речник

Језички модел аутокорекције iOS-а користи комбинацију статичког речника и динамички ученог модела. Системски речник садржи најчешће коришћене речи за сваки језик, а језички модел заснован на Transformer-у анализира контекст и вероватноћу замене. Модел се учи на уређају на основу текстова које корисник уноси.

Корисник може додавати речи у лични речник преко подешавања тастатуре (Подешавања > Опште > Тастатура > Замена текста). Додате речи се чувају у iCloud-у и синхронизују између уређаја преко истог Apple ID-а. Систем неће исправљати речи из личног речника, што је згодно за имена, брендове и техничке термине.

За специфичне области — медицинске, правне, техничке — стандардни речник можда не садржи довољно термина. У таквим апликацијама се препоручује или искључивање аутокорекције за одговарајућа поља, или коришћење замене текста преко UIResponder методе .replacementDictionary за iOS 17+.

Према Apple Machine Learning Research (2024), нови модел аутокорекције заснован на архитектури Transformer обрађује до 10 токена контекста (наспрам 3 токена у претходном моделу), што омогућава прецизније одређивање намере корисника. Модел узима у обзир не само правопис, већ и граматичку структуру реченице.

Safe Keyboard и поверљиви подаци

Safe Keyboard је заштићени режим уноса који се аутоматски активира за поља са secureTextEntry = true. У овом режиму, аутокорекција, аутоматско велико слово и предиктивни унос се искључују од стране система без обзира на постављене вредности autocorrectionType. Систем такође блокира приступ личном речнику и заменама текста.

Safe Keyboard спречава цурење унетих података кроз механизме аутокорекције. Ако би аутокорекција била активна за поље лозинке, систем би могао да сачува унету лозинку у личном речнику или да је пошаље на Apple сервере ради учења модела. Safe Keyboard гарантује да поверљиви подаци не напуштају границе апликације.

За финансијске апликације, Safe Keyboard се аутоматски активира само за поља са secureTextEntry. За поља уноса бројева картица, датума истека и CVV кодова, програмер мора додатно ручно искључити аутокорекцију постављањем autocorrectionType = .no и keyboardType = .numberPad или .phonePad.

Почевши од iOS 17, Safe Keyboard подржава заштиту од пресретања преко тастатура трећих страна. Ако је корисник инсталирао тастатуру из App Store-а, при активацији secureTextEntry системска тастатура аутоматски замењује тастатуру треће стране, чак и ако је била изабрана као подразумевана. Ово гарантује да се лозинке уносе само преко безбедне системске тастатуре.

Подешавање преко Swift кода

Управљање аутокорекцијом у Swift-у се врши преко својства autocorrectionType објеката UITextField и UITextView. Својство је доступно и за читање и за писање и може се мењати динамички у зависности од контекста уноса. Подешавање преко Interface Builder-а је доступно у инспектору атрибута под именом Correction.

swift
let textField = UITextField()
textField.autocorrectionType = .no

За формулар за пријаву аутокорекцију треба искључити за поље лозинке и укључити подразумевано за поље за пријаву. Поље е-поште се такође препоручује оставити без аутокорекције, јер се симбол @ и имена домена често погрешно замењују. За поље username аутокорекција може бити укључена ако је username читљива реч.

swift
class RegistrationViewController: UIViewController {

    @IBOutlet var nameField: UITextField!
    @IBOutlet var emailField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        nameField.autocorrectionType = .yes
        emailField.autocorrectionType = .no
        emailField.textContentType = .emailAddress
    }
}

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

swift
let textView = UITextView()
textView.autocorrectionType = .default

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

Када искључити аутокорекцију

Аутокорекцију треба искључити у пољима где је тачност унетих података критична и систем не може правилно одредити намеру корисника. Главни случајеви: поља лозинки и сигурносних података, поља адресе е-поште, траке за претрагу, поља за унос кода и програмског кода, као и поља са нестандардним форматима података.

За траке за претрагу (UISearchBar) аутокорекција је подразумевано искључена, што одговара очекивањима корисника. При претрази, корисник може уносити непотпунe речи, техничке термине или упите на различитим језицима, а аутокорекција би само сметала. Слично важи за поља уноса URL-а и имена домена.

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

Према Apple Human Interface Guidelines, аутокорекција треба да буде искључена за свако поље у коме унети подаци можда нису у системском речнику: бројеви поруџбина, кодови резервација, идентификатори, IMEI, MAC адресе. Ако поље прихвата алфанумеричке податке у нестандардном формату — искључите аутокорекцију.

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

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

Глобално искључивање аутокорекције за апликацију не постоји. Потребно је поставити autocorrectionType = .no за свако текстуално поље посебно или креирати подкласу UITextField са преписаном вредношћу.

Зашто аутокорекција не ради на симулатору?

Симулатор користи поједностављени модел уноса са Mac тастатуре. Језички модел аутокорекције у симулатору није активан — за тестирање користите прави уређај.

Како додати реч у лични речник?

Корисник може додати реч преко Подешавања > Опште > Тастатура > Замена текста. За апликацију не постоји API за програмско додавање речи у системски речник аутокорекције.

Да ли подешавање keyboardType искључује аутокорекцију?

Не, keyboardType не утиче на аутокорекцију. Чак и за тастатуру .numberPad аутокорекција може бити активна, ако није изричито искључена преко autocorrectionType.

Да ли аутокорекција ради за тастатуре трећих страна?

Тастатуре трећих страна имају сопствене механизме аутокорекције и не користе системски UITextAutocorrectionType. Понашање зависи од имплементације конкретне тастатуре.

Закључак

  • Autocorrection — системска функција iOS-а за аутоматско исправљање правописних грешака у текстуалним пољима
  • Три режима UITextAutocorrectionType: .default (наслеђује подешавања), .yes (укључена), .no (искључена)
  • Transformer језички модел обрађује до 10 токена контекста и ради потпуно на уређају
  • Safe Keyboard аутоматски искључује аутокорекцију за поља са secureTextEntry = true
  • Аутокорекција је бескорисна за поља лозинки, е-поште, кодова, претраге и нестандардних формата података
  • Подешавање се врши преко својства autocorrectionType за свако поље појединачно
  • Препорука — тестирајте понашање аутокорекције на правом уређају са активним језичким моделом

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

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

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

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