การแก้ไขอัตโนมัติ — สาระสำคัญ กลไก และ 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 ปิดการแก้ไขอัตโนมัติสำหรับฟิลด์ที่ระบุ โหมดนี้จำเป็นสำหรับฟิลด์รหัสผ่าน (การป้อนข้อความที่ปลอดภัย) ที่อยู่อีเมล รหัสยืนยัน และคำค้นหา ในฟิลด์เหล่านี้ การแก้ไขอัตโนมัติไม่เพียงไร้ประโยชน์ แต่ยังเป็นอันตราย — สามารถแทนที่ข้อมูลที่ป้อนอย่างถูกต้องด้วยทางเลือกที่ผิดพลาด

โหมดค่าคำแนะนำ
.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

สำหรับ แบบฟอร์มเข้าสู่ระบบ ควรปิดการแก้ไขอัตโนมัติสำหรับฟิลด์รหัสผ่านและเปิดใช้งานตามค่าเริ่มต้นสำหรับฟิลด์เข้าสู่ระบบ ฟิลด์อีเมลควรปล่อยไว้โดยไม่มีการแก้ไขอัตโนมัติ เนื่องจากสัญลักษณ์ @ และชื่อโดเมนมักถูกแทนที่อย่างไม่ถูกต้อง สำหรับฟิลด์ชื่อผู้ใช้ การแก้ไขอัตโนมัติสามารถเปิดใช้งานได้หากชื่อผู้ใช้เป็นคำที่อ่านได้

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) การแก้ไขอัตโนมัติถูกปิดตามค่าเริ่มต้น ซึ่งสอดคล้องกับความคาดหวังของผู้ใช้ เมื่อค้นหา ผู้ใช้อาจป้อนคำที่ไม่สมบูรณ์ คำศัพท์เทคนิค หรือคำค้นหาในภาษาต่างๆ และการแก้ไขอัตโนมัติจะเป็นอุปสรรคเท่านั้น เช่นเดียวกันสำหรับฟิลด์ป้อน URL และชื่อโดเมน

ใน แอปส่งข้อความ และแอปสื่อสาร การแก้ไขอัตโนมัติมักจะเปิดใช้งาน แต่สำหรับการป้อนคำสแลง คำย่อ และคำศัพท์ที่ไม่เป็นทางการ อาจสร้างความไม่สะดวก ในกรณีเช่นนี้ ผู้ใช้สามารถปิดการแก้ไขอัตโนมัติผ่านการตั้งค่าแป้นพิมพ์ หรือนักพัฒนาสามารถให้สวิตช์ในอินเทอร์เฟซของแอปพลิเคชันโดยตรง

ตาม Human Interface Guidelines ของ Apple ควรปิดการแก้ไขอัตโนมัติสำหรับฟิลด์ใดๆ ที่ข้อมูลที่ป้อนอาจไม่พบในพจนานุกรมระบบ: หมายเลขคำสั่งซื้อ รหัสการจอง ตัวระบุ IMEI ที่อยู่ MAC หากฟิลด์รับข้อมูลตัวอักษรและตัวเลขในรูปแบบที่ไม่ได้มาตรฐาน — ให้ปิดการแก้ไขอัตโนมัติ

คำถามที่พบบ่อย

จะปิดการแก้ไขอัตโนมัติอย่างสมบูรณ์ในแอปพลิเคชันทั้งหมดได้อย่างไร?

ไม่มีการปิดการแก้ไขอัตโนมัติในระดับโลกสำหรับทั้งแอปพลิเคชัน จำเป็นต้องตั้งค่า autocorrectionType = .no สำหรับแต่ละฟิลด์ข้อความแยกกัน หรือสร้างคลายย่อยของ UITextField ด้วยค่าที่แทนที่

ทำไมการแก้ไขอัตโนมัติไม่ทำงานบนโปรแกรมจำลอง?

โปรแกรมจำลอง ใช้โมเดลการป้อนที่เรียบง่ายจากแป้นพิมพ์ Mac โมเดลภาษาการแก้ไขอัตโนมัติไม่ทำงานบนโปรแกรมจำลอง — ใช้อุปกรณ์จริงสำหรับการทดสอบ

จะเพิ่มคำในพจนานุกรมผู้ใช้ได้อย่างไร?

ผู้ใช้สามารถเพิ่มคำผ่าน การตั้งค่า > ทั่วไป > แป้นพิมพ์ > การแทนที่ข้อความ ไม่มี API สำหรับแอปพลิเคชันในการเพิ่มคำลงในพจนานุกรมการแก้ไขอัตโนมัติของระบบโดยทางโปรแกรม

การตั้งค่า keyboardType ปิดการแก้ไขอัตโนมัติหรือไม่?

ไม่ keyboardType ไม่ส่งผลต่อการแก้ไขอัตโนมัติ แม้แต่สำหรับแป้นพิมพ์ .numberPad การแก้ไขอัตโนมัติก็สามารถทำงานได้หากไม่ได้ปิดอย่างชัดเจนผ่าน autocorrectionType

การแก้ไขอัตโนมัติทำงานสำหรับแป้นพิมพ์ของบุคคลที่สามหรือไม่?

แป้นพิมพ์ของบุคคลที่สาม มีกลไกการแก้ไขอัตโนมัติของตนเองและไม่ใช้ UITextAutocorrectionType ของระบบ พฤติกรรมขึ้นอยู่กับการนำไปใช้ของแป้นพิมพ์นั้นๆ

สรุป

  • การแก้ไขอัตโนมัติ เป็นคุณสมบัติระบบ iOS สำหรับแก้ไขข้อผิดพลาดในการสะกดคำโดยอัตโนมัติในฟิลด์ข้อความ
  • สามโหมด ของ UITextAutocorrectionType: .default (สืบทอดการตั้งค่า), .yes (เปิดใช้งาน), .no (ปิดใช้งาน)
  • โมเดลภาษา Transformer ประมวลผลโทเค็นบริบทสูงสุด 10 โทเค็นและทำงานบนอุปกรณ์อย่างสมบูรณ์
  • Safe Keyboard ปิดการแก้ไขอัตโนมัติโดยอัตโนมัติสำหรับฟิลด์ที่มี secureTextEntry = true
  • การแก้ไขอัตโนมัติไร้ประโยชน์ สำหรับฟิลด์รหัสผ่าน อีเมล รหัส ค้นหา และรูปแบบข้อมูลที่ไม่ได้มาตรฐาน
  • การกำหนดค่าทำได้ ผ่านคุณสมบัติ autocorrectionType สำหรับแต่ละฟิลด์แยกกัน
  • คำแนะนำ — ทดสอบพฤติกรรมการแก้ไขอัตโนมัติบนอุปกรณ์จริงที่มีโมเดลภาษาที่ทำงานอยู่

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม