Автокорекція — суть, механізми та UITextAutocorrectionType

Автор: IT Sectr Опубліковано: 2026-07-08 Час читання: 7 хв

Автокорекція — це вбудований механізм iOS, який автоматично виправляє орфографічні помилки під час введення тексту. UIKit керує поведінкою автокорекції через властивість autocorrectionType у протоколі UITextInputTraits, підтримуючи три режими: за замовчуванням, увімкнено та вимкнено. За даними Apple Text Programming Guide (2025), автокорекція аналізує введений текст на основі системного словника та машинного навчання на пристрої. Використовуйте autocorrectionType для кожного текстового поля окремо — це дозволяє адаптувати поведінку під специфіку введених даних.

Головне

  • Автокорекція — системний механізм iOS для автоматичного виправлення орфографічних помилок під час набору тексту
  • UITextAutocorrectionType підтримує три режими: .default, .yes та .no для кожного поля індивідуально
  • Словник автокорекції будується на основі системного словника iOS та навченої на пристрої мовної моделі
  • Safe Keyboard — захищена клавіатура, яка вимикає автокорекцію для полів паролів та фінансових даних
  • Локалізація — автокорекція працює для всіх підтримуваних мов клавіатури, включаючи додаткові розкладки

Що таке автокорекція?

Автокорекція — це функція операційної системи iOS, яка автоматично замінює введені слова на ймовірно правильні варіанти при виявленні орфографічної помилки. Механізм працює на рівні текстових полів 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 вимикає автокорекцію для конкретного поля. Цей режим обов'язковий для полів паролів (безпечне введення тексту), email-адрес, кодів підтвердження та пошукових запитів. У цих полях автокорекція не лише марна, але й шкідлива — вона може замінити правильно введені дані на помилкові.

РежимЗначенняРекомендація
.defaultУспадковує системне налаштуванняБільшість полів введення
.yesПримусово ввімкненоРедактори тексту, нотатки
.noПримусово вимкненоПаролі, email, пошук, коди

Мовна модель та словник

Мовна модель автокорекції 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

Для форми входу автокорекцію слід вимкнути для поля пароля та ввімкнути за замовчуванням для поля логіна. Поле email також рекомендується залишити без автокорекції, оскільки символ @ та доменні імена часто замінюються невірно. Для поля 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 залежно від поточного контексту або ролі поля, яка може змінюватися в процесі роботи додатку.

Коли вимикати автокорекцію

Автокорекцію слід вимикати в полях, де точність введених даних критична і система не може коректно визначити намір користувача. Основні випадки: поля паролів та безпечних даних, поля введення email-адрес, пошукові рядки, поля введення коду та програмного коду, а також поля з нестандартними форматами даних.

Для пошукових рядків (UISearchBar) автокорекція за замовчуванням вимкнена, що відповідає очікуванням користувачів. При пошуку користувач може вводити неповні слова, технічні терміни або запити різними мовами, і автокорекція буде лише заважати. Аналогічно для полів введення URL та доменних імен.

У месенджерах та додатках для спілкування автокорекція зазвичай ввімкнена, але для введення сленгу, абревіатур та неформальної лексики може створювати незручності. У таких випадках користувач може вимкнути автокорекцію через налаштування клавіатури або розробник може надати перемикач безпосередньо в інтерфейсі додатку.

За даними Apple Human Interface Guidelines, автокорекція має бути вимкнена для будь-якого поля, де введені дані можуть не знаходитися в системному словнику: номери замовлень, коди бронювання, ідентифікатори, IMEI, MAC-адреси. Якщо поле приймає буквено-цифрові дані в нестандартному форматі — вимикайте автокорекцію.

Поширені запитання

Як повністю вимкнути автокорекцію у всьому додатку?

Глобального вимкнення автокорекції для додатку не існує. Необхідно встановити autocorrectionType = .no для кожного текстового поля окремо або створити підклас UITextField із перевизначеним значенням.

Чому автокорекція не працює на симуляторі?

Симулятор використовує спрощену модель введення з клавіатури Mac. Мовна модель автокорекції в симуляторі не активна — для тестування використовуйте реальний пристрій.

Як додати слово до користувацького словника?

Користувач може додати слово через Налаштування > Основні > Клавіатура > Заміна тексту. Для додатку немає API для програмного додавання слів у системний словник автокорекції.

Чи вимикає автокорекцію встановлення keyboardType?

Ні, keyboardType не впливає на автокорекцію. Навіть для клавіатури .numberPad автокорекція може бути активною, якщо явно не вимкнена через autocorrectionType.

Чи працює автокорекція для сторонніх клавіатур?

Сторонні клавіатури мають власні механізми автокорекції і не використовують системний UITextAutocorrectionType. Поведінка залежить від реалізації конкретної клавіатури.

Підсумки

  • Автокорекція — системна функція iOS для автоматичного виправлення орфографічних помилок у текстових полях
  • Три режими UITextAutocorrectionType: .default (успадковує налаштування), .yes (ввімкнено), .no (вимкнено)
  • Мовна модель Transformer обробляє до 10 токенів контексту та працює повністю на пристрої
  • Safe Keyboard автоматично вимикає автокорекцію для полів із secureTextEntry = true
  • Автокорекція марна для полів паролів, email, кодів, пошуку та нестандартних форматів даних
  • Налаштування виконується через властивість autocorrectionType для кожного поля індивідуально
  • Рекомендація — тестуйте поведінку автокорекції на реальному пристрої з активною мовною моделлю

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також