การพิมพ์ตัวใหญ่แบบอัตโนมัติ: คืออะไร ประเภท และ UITextAutocapitalizationType

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-07-08 เวลาอ่าน: 7 นาที

การพิมพ์ตัวใหญ่แบบอัตโนมัติ เป็นกลไกของ iOS ที่แปลงอักษรตัวแรกของข้อความที่ป้อนเป็นตัวพิมพ์ใหญ่โดยอัตโนมัติในบริบทที่กำหนด UIKit มีคุณสมบัติ autocapitalizationType ในโปรโตคอล UITextInputTraits พร้อมสี่โหมด: none, words, sentences และ allCharacters ตาม Apple Text Programming Guide (2025) การกำหนดค่าการพิมพ์ตัวใหญ่แบบอัตโนมัติที่ถูกต้องช่วยปรับปรุงประสบการณ์ผู้ใช้และลดจำนวนการแก้ไขด้วยตนเองระหว่างการป้อนข้อมูล ใช้โหมด sentences สำหรับช่องข้อความส่วนใหญ่ และ none สำหรับชื่อผู้ใช้และรหัสผ่าน

ประเด็นสำคัญ

  • การพิมพ์ตัวใหญ่แบบอัตโนมัติ คือการแปลงอักษรตัวแรกเป็นตัวพิมพ์ใหญ่โดยอัตโนมัติในช่องป้อนข้อมูล UIKit
  • UITextAutocapitalizationType มีสี่โหมด: none, words, sentences และ allCharacters
  • โหมด sentences เป็นโหมดที่พบบ่อยที่สุด ทำให้อักษรตัวแรกของแต่ละประโยคเป็นตัวพิมพ์ใหญ่
  • โหมด words ทำให้อักษรตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่ สะดวกสำหรับช่องชื่อและนามสกุล
  • โหมด none จำเป็นสำหรับช่องรหัสผ่าน อีเมล คำค้นหา และรหัสยืนยัน

การพิมพ์ตัวใหญ่แบบอัตโนมัติคืออะไร?

การพิมพ์ตัวใหญ่แบบอัตโนมัติ เป็นคุณสมบัติของระบบปฏิบัติการ iOS ที่แปลงอักขระตัวแรกของข้อความเป็นตัวพิมพ์ใหญ่โดยอัตโนมัติเมื่อตรงตามเงื่อนไขที่กำหนด กลไกนี้ถูกควบคุมผ่านคุณสมบัติ autocapitalizationType ซึ่งมีให้สำหรับองค์ประกอบทั้งหมดที่ใช้โปรโตคอล UITextInputTraits: UITextField, UITextView และ UISearchBar

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

ตาม Apple Human Interface Guidelines (2025) การพิมพ์ตัวใหญ่แบบอัตโนมัติเป็นส่วนหนึ่งของระบบป้อนข้อมูลเชิงทำนายที่กว้างขึ้นซึ่งรวมถึงการแก้ไขอัตโนมัติและการป้อนข้อความเชิงทำนาย ผู้ใช้สามารถปิดคุณสมบัติทั้งหมดเหล่านี้ได้ทั่วโลกในการตั้งค่าระบบ (การตั้งค่า > ทั่วไป > แป้นพิมพ์) แต่นักพัฒนาก็ควบคุมได้ในระดับช่องเฉพาะเช่นกัน

ซึ่งแตกต่างจากการแก้ไขอัตโนมัติ การพิมพ์ตัวใหญ่แบบอัตโนมัติไม่ได้ใช้ แบบจำลองภาษา — มันทำงานด้วยกฎง่ายๆ: หลังจุดและช่องว่าง ที่จุดเริ่มต้นของข้อความ หลังอักขระขึ้นบรรทัดใหม่ ข้อยกเว้นคือโหมด words ซึ่งอักษรตัวแรกของแต่ละคำจะเป็นตัวพิมพ์ใหญ่โดยไม่คำนึงถึงบริบท

โหมดการพิมพ์ตัวใหญ่แบบอัตโนมัติ

UITextAutocapitalizationType เป็นการแจงนับสี่ค่าที่กำหนดกลยุทธ์การแปลงตัวพิมพ์ใหญ่อัตโนมัติ แต่ละโหมดออกแบบมาสำหรับช่องข้อความประเภทเฉพาะและแก้ไขงานประสบการณ์ผู้ใช้โดยเฉพาะ

None — ไม่มีการพิมพ์ตัวใหญ่แบบอัตโนมัติ

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

Words — แต่ละคำเป็นตัวพิมพ์ใหญ่

โหมด .words ทำให้อักษรตัวแรกของแต่ละคำที่ป้อนเป็นตัวพิมพ์ใหญ่ ระบบกำหนดขอบเขตของคำด้วยช่องว่างและแปลงอักขระตัวแรกหลังช่องว่างเป็นตัวพิมพ์ใหญ่ โหมดนี้สะดวกสำหรับช่องชื่อ นามสกุล ชื่อเมือง ชื่อถนน และช่องอื่นๆ ที่แต่ละคำควรขึ้นต้นด้วยตัวพิมพ์ใหญ่

Sentences — ต้นประโยค

โหมด .sentences เป็นโหมดที่พบบ่อยที่สุดและใช้เป็นค่าเริ่มต้นสำหรับช่องข้อความส่วนใหญ่ ระบบจะทำให้อักษรตัวแรกหลังจุด เครื่องหมายอัศเจรีย์ หรือเครื่องหมายคำถามตามด้วยช่องว่างเป็นตัวพิมพ์ใหญ่ โหมดนี้เหมาะสำหรับบันทึก ข้อความ ความคิดเห็น และช่องข้อความหลายบรรทัดอื่นๆ

All Characters — ตัวพิมพ์ใหญ่ทั้งหมด

โหมด .allCharacters แปลงอักขระที่ป้อนทั้งหมดเป็นตัวพิมพ์ใหญ่ โหมดนี้เทียบเท่ากับการกด Caps Lock ค้างไว้และใช้สำหรับช่องที่ข้อมูลต้องเป็นตัวพิมพ์ใหญ่: รหัสไปรษณีย์ รหัสประเทศ ตัวย่อ หมายเลขคำสั่งซื้อ ควรใช้ด้วยความระมัดระวังเนื่องจากข้อความตัวพิมพ์ใหญ่อ่านยากกว่า

โหมดคำอธิบายตัวอย่างการป้อนคำแนะนำ
.noneไม่มีการเปลี่ยนแปลงsomchai@mail.comอีเมล รหัสผ่าน ค้นหา
.wordsแต่ละคำสมชาย ใจดีชื่อ ที่อยู่ เมือง
.sentencesต้นประโยคสวัสดี สบายดีไหม?ข้อความ บันทึก
.allCharactersตัวพิมพ์ใหญ่ทั้งหมดABC-123รหัส ดัชนี

การทำงานของตัวพิมพ์ใหญ่อัตโนมัติ

กลไกการพิมพ์ตัวใหญ่แบบอัตโนมัติ จะทำงานระหว่างการประมวลผลการกดแป้น ก่อนที่อักขระจะแสดงบนหน้าจอ เมื่อผู้ใช้กดแป้น UITextInputTraits จะตรวจสอบตำแหน่งเคอร์เซอร์ปัจจุบันและใช้กฎการแปลงตัวพิมพ์ตาม autocapitalizationType ที่ตั้งไว้

สำหรับโหมด .sentences ระบบจะติดตามอักขระทริกเกอร์: จุด (.) เครื่องหมายอัศเจรีย์ (!) เครื่องหมายคำถาม (?) และอักขระขึ้นบรรทัดใหม่ ( ) เมื่อเปิดใช้งาน หลังจากตรวจพบอักขระทริกเกอร์และช่องว่างที่ตามมา ระบบจะตั้งค่าแฟล็ก “คาดหวังตัวพิมพ์ใหญ่” สำหรับอักขระที่ป้อนถัดไป

โหมด .words ติดตามอักขระช่องว่างเป็นทริกเกอร์ หลังจากแต่ละช่องว่าง ระบบจะคาดหวังตัวพิมพ์ใหญ่สำหรับคำถัดไป อย่างไรก็ตาม มีข้อยกเว้น: หลังยัติภังค์ อะพอสทรอฟี และเครื่องหมายวรรคตอนอื่นๆ ภายในคำ จะไม่ใส่ตัวพิมพ์ใหญ่ ตัวอย่างเช่น “O’Brien” จะยังคงถูกต้อง

คุณสมบัติที่สำคัญคือการพิมพ์ตัวใหญ่แบบอัตโนมัติทำงานเฉพาะกับ อักขระตัวแรก ของคำ หากผู้ใช้ป้อนคำที่มีตัวพิมพ์ใหญ่อยู่ตรงกลาง (เช่น iPhone หรือ macOS) ระบบจะไม่เปลี่ยนแปลง เนื่องจากการแปลงใช้เฉพาะกับอักขระตัวแรกหลังทริกเกอร์เท่านั้น ซึ่งหมายความว่าชื่อแบรนด์และผลิตภัณฑ์ที่มีตัวพิมพ์ไม่มาตรฐานจะไม่ได้รับผลกระทบ

เมื่อใดควรปิดการพิมพ์ตัวใหญ่แบบอัตโนมัติ

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

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

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

ตาม เอกสารสำหรับนักพัฒนา Apple ช่องที่มี 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, อีเมล — .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 จัดการคุณสมบัติเหล่านี้โดยอัตโนมัติ

สำหรับ ภาษารัสเซีย การพิมพ์ตัวใหญ่แบบอัตโนมัติเป็นไปตามกฎเดียวกันกับภาษาอังกฤษ: ตัวพิมพ์ใหญ่หลังจุด ที่จุดเริ่มต้นของประโยค และหลังขึ้นบรรทัดใหม่ ปัญหาอาจเกิดขึ้นกับอักษร “yo” — แม้ว่าจะมีอยู่ในพจนานุกรมระบบ แต่ไม่ใช่ทุกผังแป้นพิมพ์จะแสดงบนเลเยอร์หลัก และการพิมพ์ตัวใหญ่แบบอัตโนมัติจะแปลง “yo” เป็น “Yo” อย่างถูกต้อง

สำหรับ ภาษาจีน ญี่ปุ่น และเกาหลี การพิมพ์ตัวใหญ่แบบอัตโนมัติไม่สามารถใช้ได้ เนื่องจากภาษาเหล่านี้ไม่มีแนวคิดเรื่องตัวพิมพ์ โหมด autocapitalizationType จะถูกละเว้นโดยระบบเมื่อใช้แป้นพิมพ์ที่เกี่ยวข้อง และช่องจะทำงานเช่นเดียวกับในโหมด .none โดยไม่คำนึงถึงค่าที่ตั้งไว้

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

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

สามารถเปลี่ยนโหมดการพิมพ์ตัวใหญ่แบบอัตโนมัติแบบไดนามิกได้หรือไม่?

ได้ คุณสมบัติ autocapitalizationType สามารถเปลี่ยนแปลงได้ตลอดเวลา แม้เมื่อช่องทำงานอยู่แล้ว การเปลี่ยนแปลงจะมีผลในการป้อนอักขระครั้งถัดไป

secureTextEntry ปิดการพิมพ์ตัวใหญ่แบบอัตโนมัติหรือไม่?

ได้ สำหรับช่องที่มี isSecureTextEntry = true ระบบจะตั้งค่า autocapitalizationType = .none โดยอัตโนมัติ ไม่สามารถเปลี่ยนพฤติกรรมนี้โดยทางโปรแกรมได้

การพิมพ์ตัวใหญ่แบบอัตโนมัติทำงานสำหรับ UITextView หรือไม่?

ได้ UITextView รองรับ autocapitalizationType อย่างสมบูรณ์ ซึ่งมีประโยชน์โดยเฉพาะสำหรับช่องหลายบรรทัดที่โหมด .sentences ทำงานเป็นธรรมชาติที่สุด

การพิมพ์ตัวใหญ่แบบอัตโนมัติส่งผลต่อรหัสผ่านอย่างไร?

หากช่องไม่ได้ทำเครื่องหมายเป็น secureTextEntry แต่ใช้สำหรับป้อนรหัสผ่าน การพิมพ์ตัวใหญ่แบบอัตโนมัติสามารถ เปลี่ยนรหัสผ่าน ได้ ปิดการใช้งานเสมอสำหรับช่องที่ตัวพิมพ์มีความสำคัญ

มีความแตกต่างระหว่างเครื่องจำลองและอุปกรณ์จริงหรือไม่?

บน เครื่องจำลอง การพิมพ์ตัวใหญ่แบบอัตโนมัติทำงานผ่านแป้นพิมพ์ฮาร์ดแวร์ของ Mac และอาจทำงานแตกต่างกัน ทดสอบบนอุปกรณ์จริงเพื่อพฤติกรรมที่ถูกต้อง

สรุป

  • การพิมพ์ตัวใหญ่แบบอัตโนมัติ คือคุณสมบัติการแปลงอักขระตัวแรกเป็นตัวพิมพ์ใหญ่โดยอัตโนมัติในช่องป้อนข้อมูล iOS
  • สี่โหมด ของ UITextAutocapitalizationType: none, words, sentences, allCharacters
  • โหมด .sentences เหมาะกับช่องส่วนใหญ่ ทำงานหลังจุด ! ? และขึ้นบรรทัดใหม่
  • โหมด .none จำเป็นสำหรับอีเมล รหัสผ่าน ค้นหา และช่องที่คำนึงถึงตัวพิมพ์
  • โหมด .words เหมาะสมที่สุดสำหรับช่องชื่อ นามสกุล เมือง และที่อยู่
  • การแปลภาษา — ภาษาตุรกีมีกฎพิเศษสำหรับอักษร İ/ı
  • คำแนะนำ — กำหนดค่าการพิมพ์ตัวใหญ่แบบอัตโนมัติสำหรับแต่ละช่องตามความหมายของมัน

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

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

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

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