Tự động sửa — bản chất, cơ chế và UITextAutocorrectionType

Tác giả: IT Sectr Đã đăng: 2026-07-08 Thời gian đọc: 7 phút

Tự động sửa là cơ chế tích hợp trong iOS tự động sửa lỗi chính tả khi nhập văn bản. UIKit quản lý hành vi tự động sửa thông qua thuộc tính autocorrectionType trong giao thức UITextInputTraits, hỗ trợ ba chế độ: mặc định, bật và tắt. Theo Apple Text Programming Guide (2025), tự động sửa phân tích văn bản nhập dựa trên từ điển hệ thống và học máy trên thiết bị. Sử dụng autocorrectionType cho từng trường văn bản riêng lẻ — điều này cho phép điều chỉnh hành vi phù hợp với tính đặc thù của dữ liệu nhập.

Những điểm chính

  • Tự động sửa là cơ chế hệ thống iOS để tự động sửa lỗi chính tả khi gõ
  • UITextAutocorrectionType hỗ trợ ba chế độ: .default, .yes và .no cho từng trường riêng lẻ
  • Từ điển tự động sửa được xây dựng dựa trên từ điển hệ thống iOS và mô hình ngôn ngữ được huấn luyện trên thiết bị
  • Safe Keyboard là bàn phím được bảo vệ, tắt tự động sửa cho các trường mật khẩu và dữ liệu tài chính
  • Bản địa hóa — tự động sửa hoạt động cho tất cả ngôn ngữ bàn phím được hỗ trợ, bao gồm cả bố trí bổ sung

Tự động sửa là gì?

Tự động sửa là một tính năng của hệ điều hành iOS tự động thay thế các từ đã gõ bằng các lựa chọn thay thế được cho là đúng khi phát hiện lỗi chính tả. Cơ chế hoạt động ở cấp độ trường văn bản UIKit và có sẵn trong tất cả các ứng dụng sử dụng phần tử nhập tiêu chuẩn UITextField và UITextView.

Cốt lõi của tự động sửa là một mô hình ngôn ngữ được huấn luyện trên hàng triệu mẫu văn bản cho mỗi ngôn ngữ được hỗ trợ. Mô hình hoạt động hoàn toàn trên thiết bị (on-device), đảm bảo tính bảo mật của dữ liệu nhập — văn bản không được gửi đến máy chủ Apple để phân tích. Với mỗi bản cập nhật iOS, mô hình được tinh chỉnh và mở rộng với các từ và quy tắc mới.

Tự động sửa được kích hoạt tự động cho tất cả các trường văn bản trừ khi nhà phát triển tắt nó một cách rõ ràng. Người dùng có thể tắt hoàn toàn tự động sửa trong cài đặt hệ thống (Cài đặt > Cài đặt chung > Bàn phím > Tự động sửa), nhưng nhà phát triển cũng có thể kiểm soát hành vi này cho các trường riêng lẻ thông qua thuộc tính autocorrectionType.

Theo WWDC 2023 Phiên 204, Apple đã giới thiệu mô hình ngôn ngữ tự động sửa được cải tiến dựa trên Transformer, mô hình này xem xét ngữ cảnh của toàn bộ câu chứ không chỉ từ cuối cùng. Điều này đã giảm 30% các sửa chữa sai so với mô hình dựa trên n-gram trước đây.

Các chế độ tự động sửa trong iOS

UITextAutocorrectionType là một kiểu liệt kê với ba giá trị xác định hành vi tự động sửa cho một trường văn bản cụ thể. Mỗi giá trị được đặt thông qua thuộc tính autocorrectionType, có sẵn trong Interface Builder và trong mã khi tạo trường.

Chế độ .default

Giá trị .default có nghĩa là trường kế thừa cài đặt tự động sửa toàn cục từ các tham số hệ thống của bàn phím. Chế độ này được khuyến nghị cho hầu hết các trường văn bản vì nó tôn trọng lựa chọn của người dùng. Nếu người dùng đã tắt tự động sửa trong cài đặt, trường có .default cũng sẽ không sử dụng nó.

Chế độ .yes

Giá trị .yes buộc bật tự động sửa cho trường bất kể cài đặt hệ thống. Chế độ này chỉ nên được sử dụng cho các trường mà độ chính xác chính tả là quan trọng — ví dụ: trong trình soạn thảo văn bản, trường nhập ghi chú hoặc tin nhắn. Apple khuyến nghị sử dụng .yes một cách thận trọng, vì việc buộc bật có thể mâu thuẫn với mong đợi của người dùng.

Chế độ .no

Giá trị .no tắt tự động sửa cho một trường cụ thể. Chế độ này là bắt buộc đối với trường mật khẩu (nhập văn bản bảo mật), địa chỉ email, mã xác nhận và truy vấn tìm kiếm. Trong các trường này, tự động sửa không chỉ vô ích mà còn có hại — nó có thể thay thế dữ liệu được nhập đúng bằng các lựa chọn thay thế sai.

Chế độGiá trịKhuyến nghị
.defaultKế thừa cài đặt hệ thốngHầu hết các trường nhập
.yesBuộc bậtTrình soạn thảo văn bản, ghi chú
.noBuộc tắtMật khẩu, email, tìm kiếm, mã

Mô hình ngôn ngữ và từ điển

Mô hình ngôn ngữ của tự động sửa iOS sử dụng kết hợp từ điển tĩnh và mô hình được huấn luyện động. Từ điển hệ thống chứa các từ được sử dụng phổ biến nhất cho mỗi ngôn ngữ, trong khi mô hình ngôn ngữ dựa trên Transformer phân tích ngữ cảnh và xác suất thay thế. Mô hình được huấn luyện trên thiết bị dựa trên văn bản do người dùng nhập.

Người dùng có thể thêm từ vào từ điển cá nhân thông qua cài đặt bàn phím (Cài đặt > Cài đặt chung > Bàn phím > Thay thế văn bản). Các từ đã thêm được lưu trong iCloud và đồng bộ hóa giữa các thiết bị sử dụng cùng một Apple ID. Hệ thống sẽ không sửa các từ từ từ điển cá nhân, điều này thuận tiện cho tên, thương hiệu và thuật ngữ kỹ thuật.

Đối với các lĩnh vực chuyên môn — y tế, pháp lý, kỹ thuật — từ điển tiêu chuẩn có thể chứa không đủ thuật ngữ. Trong các ứng dụng như vậy, nên tắt tự động sửa cho các trường liên quan hoặc sử dụng thay thế văn bản tùy chỉnh thông qua phương thức UIResponder .replacementDictionary cho iOS 17+.

Theo Apple Machine Learning Research (2024), mô hình tự động sửa mới dựa trên kiến trúc Transformer xử lý tới 10 token ngữ cảnh (so với 3 token trong mô hình trước đó), cho phép xác định ý định của người dùng chính xác hơn. Mô hình xem xét không chỉ chính tả mà còn cả cấu trúc ngữ pháp của câu.

Safe Keyboard và dữ liệu bảo mật

Safe Keyboard là chế độ nhập được bảo vệ tự động kích hoạt cho các trường có secureTextEntry = true. Trong chế độ này, tự động sửa, tự động viết hoa và nhập dự đoán bị hệ thống tắt bất kể giá trị autocorrectionType đã đặt. Hệ thống cũng chặn quyền truy cập vào từ điển người dùng và thay thế văn bản.

Safe Keyboard ngăn chặn rò rỉ dữ liệu nhập thông qua các cơ chế tự động sửa. Nếu tự động sửa hoạt động cho trường mật khẩu, hệ thống có thể lưu mật khẩu đã nhập vào từ điển người dùng hoặc gửi nó đến máy chủ Apple để huấn luyện mô hình. Safe Keyboard đảm bảo rằng dữ liệu bảo mật không rời khỏi ứng dụng.

Đối với các ứng dụng tài chính, Safe Keyboard chỉ tự động kích hoạt cho các trường có secureTextEntry. Đối với các trường nhập số thẻ, ngày hết hạn và mã CVV, nhà phát triển phải tắt thủ công tự động sửa bằng cách đặt autocorrectionType = .no và keyboardType = .numberPad hoặc .phonePad.

Bắt đầu từ iOS 17, Safe Keyboard hỗ trợ bảo vệ chống chặn thông qua bàn phím của bên thứ ba. Nếu người dùng đã cài đặt bàn phím từ App Store, khi secureTextEntry được kích hoạt, bàn phím hệ thống tự động thay thế bàn phím của bên thứ ba, ngay cả khi nó được chọn làm mặc định. Điều này đảm bảo rằng mật khẩu chỉ được nhập thông qua bàn phím hệ thống an toàn.

Cấu hình qua mã Swift

Việc quản lý tự động sửa trong Swift được thực hiện thông qua thuộc tính autocorrectionType của các đối tượng UITextField và UITextView. Thuộc tính có sẵn cho cả đọc và ghi, và có thể được thay đổi động tùy theo ngữ cảnh nhập. Cấu hình qua Interface Builder có sẵn trong trình kiểm tra thuộc tính dưới tên Correction.

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

Đối với biểu mẫu đăng nhập, tự động sửa nên được tắt cho trường mật khẩu và bật theo mặc định cho trường đăng nhập. Trường email cũng được khuyến nghị để không có tự động sửa, vì ký tự @ và tên miền thường bị thay thế sai. Đối với trường tên người dùng, tự động sửa có thể được bật nếu tên người dùng là một từ có thể đọc được.

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

Đối với UITextView, cấu hình tự động sửa được thực hiện tương tự. Điều này đặc biệt quan trọng đối với các trường nhập nhiều dòng cho bình luận, tin nhắn và ghi chú, nơi tự động sửa mang lại lợi ích lớn nhất nhưng cũng có thể gây bất tiện khi nhập thuật ngữ kỹ thuật hoặc mã.

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

Đối với thay đổi động của tự động sửa, hãy sử dụng giao thức UITextFieldDelegate. Phương thức textFieldDidBeginEditing được gọi khi một trường được kích hoạt và trong đó bạn có thể thay đổi autocorrectionType tùy thuộc vào ngữ cảnh hiện tại hoặc vai trò của trường, có thể thay đổi trong quá trình hoạt động của ứng dụng.

Khi nào nên tắt tự động sửa

Tự động sửa nên được tắt trong các trường mà độ chính xác của dữ liệu nhập là quan trọng và hệ thống không thể xác định chính xác ý định của người dùng. Các trường hợp chính: trường mật khẩu và dữ liệu bảo mật, trường nhập địa chỉ email, chuỗi tìm kiếm, trường nhập mã và mã lập trình, cũng như các trường có định dạng dữ liệu không chuẩn.

Đối với thanh tìm kiếm (UISearchBar), tự động sửa được tắt theo mặc định, phù hợp với mong đợi của người dùng. Khi tìm kiếm, người dùng có thể nhập các từ không hoàn chỉnh, thuật ngữ kỹ thuật hoặc truy vấn bằng các ngôn ngữ khác nhau và tự động sửa sẽ chỉ gây cản trở. Tương tự đối với các trường nhập URL và tên miền.

Trong các ứng dụng nhắn tin và giao tiếp, tự động sửa thường được bật, nhưng để nhập tiếng lóng, từ viết tắt và từ vựng không chính thức, nó có thể gây bất tiện. Trong những trường hợp như vậy, người dùng có thể tắt tự động sửa thông qua cài đặt bàn phím hoặc nhà phát triển có thể cung cấp công tắc trực tiếp trong giao diện ứng dụng.

Theo Human Interface Guidelines của Apple, tự động sửa nên được tắt cho bất kỳ trường nào mà dữ liệu nhập có thể không có trong từ điển hệ thống: số đơn hàng, mã đặt chỗ, mã định danh, IMEI, địa chỉ MAC. Nếu trường chấp nhận dữ liệu chữ số ở định dạng không chuẩn — hãy tắt tự động sửa.

Các câu hỏi thường gặp

Làm cách nào để tắt hoàn toàn tự động sửa trong toàn bộ ứng dụng?

Không có cách tắt tự động sửa toàn cục cho toàn bộ ứng dụng. Cần đặt autocorrectionType = .no cho từng trường văn bản riêng lẻ hoặc tạo một lớp con UITextField với giá trị được ghi đè.

Tại sao tự động sửa không hoạt động trên trình mô phỏng?

Trình mô phỏng sử dụng mô hình nhập đơn giản hóa từ bàn phím Mac. Mô hình ngôn ngữ tự động sửa không hoạt động trên trình mô phỏng — hãy sử dụng thiết bị thật để kiểm tra.

Làm cách nào để thêm từ vào từ điển người dùng?

Người dùng có thể thêm từ thông qua Cài đặt > Cài đặt chung > Bàn phím > Thay thế văn bản. Không có API nào để ứng dụng thêm từ vào từ điển tự động sửa hệ thống một cách lập trình.

Việc đặt keyboardType có tắt tự động sửa không?

Không, keyboardType không ảnh hưởng đến tự động sửa. Ngay cả đối với bàn phím .numberPad, tự động sửa vẫn có thể hoạt động nếu không được tắt rõ ràng thông qua autocorrectionType.

Tự động sửa có hoạt động cho bàn phím của bên thứ ba không?

Bàn phím của bên thứ ba có cơ chế tự động sửa riêng và không sử dụng UITextAutocorrectionType hệ thống. Hành vi phụ thuộc vào việc triển khai của bàn phím cụ thể.

Tổng kết

  • Tự động sửa là tính năng hệ thống iOS để tự động sửa lỗi chính tả trong các trường văn bản
  • Ba chế độ của UITextAutocorrectionType: .default (kế thừa cài đặt), .yes (bật), .no (tắt)
  • Mô hình ngôn ngữ Transformer xử lý tới 10 token ngữ cảnh và hoạt động hoàn toàn trên thiết bị
  • Safe Keyboard tự động tắt tự động sửa cho các trường có secureTextEntry = true
  • Tự động sửa vô ích cho các trường mật khẩu, email, mã, tìm kiếm và định dạng dữ liệu không chuẩn
  • Cấu hình được thực hiện thông qua thuộc tính autocorrectionType cho từng trường riêng lẻ
  • Khuyến nghị — kiểm tra hành vi tự động sửa trên thiết bị thật với mô hình ngôn ngữ đang hoạt động

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm