Autocapitalization: τι είναι, τύποι και UITextAutocapitalizationType

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-07-08 Χρόνος ανάγνωσης: 7 λεπ

Autocapitalization — είναι ένας μηχανισμός iOS που μετατρέπει αυτόματα το πρώτο γράμμα του εισαγόμενου κειμένου σε κεφαλαίο σε συγκεκριμένα συμφραζόμενα. Το UIKit παρέχει την ιδιότητα autocapitalizationType στο πρωτόκολλο UITextInputTraits με τέσσερις τρόπους: none, words, sentences και allCharacters. Σύμφωνα με το Apple Text Programming Guide (2025), η σωστή ρύθμιση της αυτόματης κεφαλαιοποίησης βελτιώνει την εμπειρία χρήστη και μειώνει τον αριθμό των χειροκίνητων διορθώσεων κατά την πληκτρολόγηση. Χρησιμοποιήστε τον τρόπο sentences για τα περισσότερα πεδία κειμένου και none για ονόματα χρηστών και κωδικούς πρόσβασης.

Κύρια σημεία

  • Autocapitalization — αυτόματη μετατροπή του πρώτου γράμματος σε κεφαλαίο στα πεδία εισαγωγής UIKit
  • UITextAutocapitalizationType περιλαμβάνει τέσσερις τρόπους: none, words, sentences και allCharacters
  • Τρόπος sentences — ο πιο συνηθισμένος, κάνει κεφαλαίο το πρώτο γράμμα κάθε πρότασης
  • Τρόπος words — κάνει κεφαλαίο το πρώτο γράμμα κάθε λέξης, βολικός για πεδία ονόματος και επωνύμου
  • Τρόπος none — υποχρεωτικός για πεδία κωδικών πρόσβασης, email, ερωτημάτων αναζήτησης και κωδικών επιβεβαίωσης

Τι είναι το Autocapitalization;

Autocapitalization (αυτόματη κεφαλαιοποίηση) — είναι μια λειτουργία του λειτουργικού συστήματος iOS που μετατρέπει αυτόματα τον πρώτο χαρακτήρα κειμένου σε κεφαλαίο όταν συμβαίνουν συγκεκριμένες συνθήκες. Ο μηχανισμός ελέγχεται μέσω της ιδιότητας autocapitalizationType, διαθέσιμης για όλα τα στοιχεία που υλοποιούν το πρωτόκολλο UITextInputTraits: UITextField, UITextView και UISearchBar.

Η λειτουργία λειτουργεί στο επίπεδο της μηχανής κειμένου iOS και ενεργοποιείται τη στιγμή εισαγωγής κάθε χαρακτήρα. Το σύστημα αναλύει τη θέση του δρομέα και το περιβάλλον κείμενο για να καθορίσει αν ο τρέχων εισαγόμενος χαρακτήρας πρέπει να μετατραπεί σε κεφαλαίο. Εάν η συνθήκη ικανοποιηθεί, το iOS αντικαθιστά αυτόματα το πεζό γράμμα με κεφαλαίο προτού εμφανιστεί στο πεδίο.

Σύμφωνα με το Apple Human Interface Guidelines (2025), η αυτόματη κεφαλαιοποίηση αποτελεί μέρος ενός ευρύτερου συστήματος προγνωστικής εισαγωγής που περιλαμβάνει επίσης την αυτόματη διόρθωση και την προγνωστική πληκτρολόγηση. Ο χρήστης μπορεί να απενεργοποιήσει όλες αυτές τις λειτουργίες καθολικά στις ρυθμίσεις συστήματος (Ρυθμίσεις > Γενικά > Πληκτρολόγιο), αλλά ο προγραμματιστής τις διαχειρίζεται επίσης σε επίπεδο συγκεκριμένων πεδίων.

Σε αντίθεση με την αυτόματη διόρθωση, η αυτόματη κεφαλαιοποίηση δεν χρησιμοποιεί γλωσσικό μοντέλο — λειτουργεί με απλούς κανόνες: μετά από τελεία και κενό, στην αρχή του κειμένου, μετά από χαρακτήρα νέας γραμμής. Εξαίρεση αποτελεί ο τρόπος words, όπου το πρώτο γράμμα κάθε λέξης γίνεται κεφαλαίο, ανεξάρτητα από τα συμφραζόμενα.

Τρόποι αυτόματης κεφαλαιοποίησης

UITextAutocapitalizationType — είναι μια απαρίθμηση τεσσάρων τιμών που καθορίζουν τη στρατηγική αυτόματης μετατροπής κεφαλαίων. Κάθε τρόπος προορίζεται για συγκεκριμένο τύπο πεδίου κειμένου και επιλύει μια συγκεκριμένη εργασία εμπειρίας χρήστη.

None — χωρίς αυτόματη κεφαλαιοποίηση

Ο τρόπος .none απενεργοποιεί πλήρως την αυτόματη μετατροπή κεφαλαίων. Όλοι οι χαρακτήρες εισάγονται στο ίδιο πεζό/κεφαλαίο που πληκτρολογεί ο χρήστης. Αυτός ο τρόπος είναι υποχρεωτικός για πεδία κωδικών πρόσβασης, διευθύνσεων email, ψευδωνύμων, ερωτημάτων αναζήτησης και οποιωνδήποτε πεδίων όπου το πεζό/κεφαλαίο έχει σημασία για την επεξεργασία δεδομένων στον διακομιστή.

Words — κάθε λέξη με κεφαλαίο

Ο τρόπος .words κάνει κεφαλαίο το πρώτο γράμμα κάθε εισαγόμενης λέξης. Το σύστημα καθορίζει το όριο λέξης με βάση το κενό και μετατρέπει τον πρώτο χαρακτήρα μετά το κενό σε κεφαλαίο. Ο τρόπος είναι βολικός για πεδία εισαγωγής ονόματος, επωνύμου, ονομάτων πόλεων, οδών και άλλων πεδίων όπου κάθε λέξη πρέπει να ξεκινά με κεφαλαίο.

Sentences — αρχή πρότασης

Ο τρόπος .sentences — ο πιο συνηθισμένος και χρησιμοποιείται από προεπιλογή για τα περισσότερα πεδία κειμένου. Το σύστημα κάνει κεφαλαίο το πρώτο γράμμα μετά από τελεία, θαυμαστικό ή ερωτηματικό που ακολουθείται από κενό. Ο τρόπος είναι ιδανικός για πεδία εισαγωγής σημειώσεων, μηνυμάτων, σχολίων και άλλων πολύγραμμων κειμένων.

All Characters — όλα κεφαλαία

Ο τρόπος .allCharacters μετατρέπει όλους τους εισαγόμενους χαρακτήρες σε κεφαλαίους. Αυτός ο τρόπος είναι ισοδύναμος με το συνεχές πάτημα του Caps Lock και χρησιμοποιείται για πεδία όπου τα δεδομένα πρέπει να είναι με κεφαλαία: ταχυδρομικοί κώδικες, κωδικοί χωρών, συντομογραφίες, αριθμοί παραγγελιών. Πρέπει να εφαρμόζεται με προσοχή, καθώς το κείμενο με κεφαλαία είναι δυσκολότερο στην ανάγνωση.

ΤρόποςΠεριγραφήΠαράδειγμα εισαγωγήςΣύσταση
.noneΧωρίς αλλαγέςjohn@mail.comEmail, κωδικοί, αναζήτηση
.wordsΚάθε λέξηΓιώργος ΠαπαδόπουλοςΌνομα, διεύθυνση, πόλη
.sentencesΑρχή πρότασηςΓεια. Πώς είσαι;Μηνύματα, σημειώσεις
.allCharactersΌλα κεφαλαίαABC-123Κωδικοί, δείκτες

Πώς λειτουργεί το αυτόματο κεφαλαίο γράμμα

Ο μηχανισμός αυτόματης κεφαλαιοποίησης ενεργοποιείται στο στάδιο επεξεργασίας του πατήματος πλήκτρου, πριν από την εμφάνιση του χαρακτήρα στην οθόνη. Όταν ο χρήστης πατά ένα πλήκτρο, το UITextInputTraits ελέγχει την τρέχουσα θέση του δρομέα και εφαρμόζει τον κανόνα μετατροπής κεφαλαίων σύμφωνα με το ρυθμισμένο autocapitalizationType.

Για τον τρόπο .sentences το σύστημα παρακολουθεί χαρακτήρες ενεργοποίησης: τελεία (.), θαυμαστικό (!), ερωτηματικό (?), καθώς και τον χαρακτήρα νέας γραμμής ( ) όταν ο τρόπος είναι ενεργοποιημένος. Μετά την ανίχνευση ενός χαρακτήρα ενεργοποίησης και του επόμενου κενού, το σύστημα ορίζει μια σημαία “αναμονή κεφαλαίου” για τον επόμενο εισαγόμενο χαρακτήρα.

Ο τρόπος .words παρακολουθεί τον χαρακτήρα κενού ως ενεργοποιητή. Μετά από κάθε κενό, το σύστημα αναμένει κεφαλαίο γράμμα για την επόμενη λέξη. Υπάρχουν ωστόσο εξαιρέσεις: μετά από παύλα, απόστροφο και άλλα σημεία στίξης μέσα στη λέξη, δεν εισάγεται κεφαλαίο. Για παράδειγμα, “O’Brien” παραμένει σωστό.

Ένα σημαντικό χαρακτηριστικό — η αυτόματη κεφαλαιοποίηση λειτουργεί μόνο για τον πρώτο χαρακτήρα της λέξης. Εάν ο χρήστης εισάγει μια λέξη που περιέχει κεφαλαία στη μέση (για παράδειγμα, iPhone ή macOS), το σύστημα δεν τα αλλάζει, καθώς η μετατροπή εφαρμόζεται μόνο στον πρώτο χαρακτήρα μετά τον ενεργοποιητή. Αυτό σημαίνει ότι ονόματα επωνυμιών και προϊόντων με μη τυπική πεζοκεφαλαία δεν θα καταστραφούν.

Πότε να απενεργοποιήσετε την αυτόματη κεφαλαιοποίηση

Η αυτόματη κεφαλαιοποίηση πρέπει να απενεργοποιείται σε πεδία όπου το πεζό/κεφαλαίο έχει σημασία για τη σωστή επεξεργασία δεδομένων. Κύριες περιπτώσεις: πεδία διευθύνσεων email, ψευδωνύμων και ονομάτων χρηστών, κωδικών πρόσβασης, ερωτημάτων αναζήτησης, διευθύνσεων URL, κωδικών επιβεβαίωσης, IMEI και σειριακών αριθμών. Σε όλες αυτές τις περιπτώσεις, η αυτόματη αλλαγή πεζοκεφαλαίας θα οδηγήσει σε σφάλματα κατά την επεξεργασία στον διακομιστή.

Για γραμμές αναζήτησης (UISearchBar) η αυτόματη κεφαλαιοποίηση είναι απενεργοποιημένη από προεπιλογή, πράγμα που ανταποκρίνεται στις προσδοκίες των χρηστών. Ένα ερώτημα αναζήτησης μπορεί να εισαχθεί με οποιαδήποτε πεζοκεφαλαία και ο διακομιστής συνήθως το μετατρέπει μόνος του σε πεζά. Εάν ενεργοποιήσετε την αυτόματη κεφαλαιοποίηση για αναζήτηση, ο χρήστης θα πρέπει κάθε φορά να διορθώνει χειροκίνητα το κεφαλαίο γράμμα στην αρχή του ερωτήματος.

Σε φόρμες εγγραφής το πεδίο username ή nickname πρέπει να έχει τρόπο .none, καθώς πολλά συστήματα διακρίνουν πεζά και κεφαλαία στα ονόματα χρηστών. Το πεδίο email πρέπει επίσης να είναι χωρίς αυτόματη κεφαλαιοποίηση — αν και τα ονόματα τομέα δεν κάνουν διάκριση πεζών/κεφαλαίων, το τοπικό μέρος του email θεωρητικά μπορεί να κάνει διάκριση, αν και στην πράξη αυτό συμβαίνει σπάνια.

Σύμφωνα με το Apple Developer Documentation, τα πεδία με 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, email — .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 λαμβάνει αυτόματα υπόψη αυτά τα χαρακτηριστικά.

Για τη ρωσική γλώσσα η αυτόματη κεφαλαιοποίηση λειτουργεί με τους ίδιους κανόνες όπως και για τα αγγλικά: κεφαλαίο μετά από τελεία, στην αρχή της πρότασης και μετά από νέα γραμμή. Προβλήματα μπορεί να προκύψουν με το γράμμα “jo” — αν και υπάρχει στο λεξικό του συστήματος, δεν το εμφανίζουν όλες οι διατάξεις πληκτρολογίου στο κύριο επίπεδο, και η αυτόματη κεφαλαιοποίηση το μετατρέπει σωστά σε κεφαλαίο.

Για τις κινεζικές, ιαπωνικές και κορεατικές γλώσσες η αυτόματη κεφαλαιοποίηση δεν εφαρμόζεται, καθώς σε αυτές τις γλώσσες δεν υπάρχει η έννοια του πεζού/κεφαλαίου. Ο τρόπος autocapitalizationType αγνοείται από το σύστημα κατά τη χρήση των αντίστοιχων πληκτρολογίων και το πεδίο συμπεριφέρεται όπως στον τρόπο .none, ανεξάρτητα από την ορισμένη τιμή.

Για την αραβική γλώσσα και τα εβραϊκά, η αυτόματη κεφαλαιοποίηση επίσης δεν εφαρμόζεται, καθώς αυτές οι γλώσσες χρησιμοποιούν το δικό τους σύστημα γραφής χωρίς διαχωρισμό σε πεζά και κεφαλαία. Το σύστημα iOS καθορίζει σωστά τη γλώσσα εισαγωγής και αγνοεί τις ρυθμίσεις αυτόματης κεφαλαιοποίησης για γλώσσες όπου αυτή η έννοια δεν υπάρχει.

Συχνές ερωτήσεις

Μπορεί να αλλάξει δυναμικά ο τρόπος αυτόματης κεφαλαιοποίησης;

Ναι, η ιδιότητα autocapitalizationType μπορεί να αλλάξει ανά πάσα στιγμή, ακόμα και όταν το πεδίο είναι ήδη ενεργό. Η αλλαγή θα τεθεί σε ισχύ κατά την επόμενη εισαγωγή χαρακτήρα.

Απενεργοποιεί το secureTextEntry την αυτόματη κεφαλαιοποίηση;

Ναι, για πεδία με isSecureTextEntry = true το σύστημα ορίζει αυτόματα autocapitalizationType = .none. Η αλλαγή αυτής της συμπεριφοράς προγραμματικά δεν είναι δυνατή.

Λειτουργεί η αυτόματη κεφαλαιοποίηση για το UITextView;

Ναι, το UITextView υποστηρίζει πλήρως το autocapitalizationType. Αυτό είναι ιδιαίτερα χρήσιμο για πολύγραμμα πεδία, όπου ο τρόπος .sentences λειτουργεί πιο φυσικά.

Πώς επηρεάζει η αυτόματη κεφαλαιοποίηση έναν κωδικό πρόσβασης;

Εάν ένα πεδίο δεν έχει επισημανθεί ως secureTextEntry αλλά χρησιμοποιείται για εισαγωγή κωδικού πρόσβασης, η αυτόματη κεφαλαιοποίηση μπορεί να αλλάξει τον κωδικό. Πάντα να την απενεργοποιείτε σε πεδία όπου η πεζοκεφαλαία έχει σημασία.

Υπάρχει διαφορά μεταξύ προσομοιωτή και συσκευής;

Στον προσομοιωτή η αυτόματη κεφαλαιοποίηση λειτουργεί μέσω του φυσικού πληκτρολογίου Mac και μπορεί να συμπεριφέρεται διαφορετικά. Δοκιμάστε σε πραγματική συσκευή για σωστή συμπεριφορά.

Περίληψη

  • Autocapitalization — λειτουργία αυτόματης μετατροπής του πρώτου χαρακτήρα σε κεφαλαίο στα πεδία εισαγωγής iOS
  • Τέσσερις τρόποι UITextAutocapitalizationType: none, words, sentences, allCharacters
  • Τρόπος .sentences κατάλληλος για τα περισσότερα πεδία, ενεργοποιείται μετά από ., !, ? και νέα γραμμή
  • Τρόπος .none υποχρεωτικός για email, κωδικούς πρόσβασης, αναζήτηση και πεδία ευαίσθητα σε πεζοκεφαλαία
  • Τρόπος .words βέλτιστος για πεδία ονόματος, επωνύμου, πόλης και διεύθυνσης
  • Τοπικοποίηση — για την τουρκική γλώσσα λαμβάνεται υπόψη ο ειδικός κανόνας του γράμματος İ/ı
  • Σύσταση — ρυθμίστε την αυτόματη κεφαλαιοποίηση για κάθε πεδίο σύμφωνα με τη σημασιολογία του

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης