Otomatik Büyük Harf, iOS'un belirli bağlamlarda girilen metnin ilk harfini otomatik olarak büyük harfe dönüştüren bir mekanizmasıdır. UIKit, UITextInputTraits protokolünde autocapitalizationType özelliğini dört modla (none, words, sentences ve allCharacters) sağlar. Apple Text Programming Guide'a (2025) göre, otomatik büyük harflendirmenin doğru yapılandırılması kullanıcı deneyimini iyileştirir ve giriş sırasındaki manuel düzeltme sayısını azaltır. Çoğu metin alanı için sentences modunu, kullanıcı adları ve şifreler için none modunu kullanın.
Önemli Noktalar
Otomatik Büyük Harf, belirli koşullar karşılandığında metnin ilk karakterini otomatik olarak büyük harfe dönüştüren bir iOS işletim sistemi özelliğidir. Mekanizma, UITextInputTraits protokolünü uygulayan tüm öğeler (UITextField, UITextView ve UISearchBar) için kullanılabilen autocapitalizationType özelliği aracılığıyla kontrol edilir.
Özellik, iOS metin motoru seviyesinde çalışır ve her karakterin girildiği anda etkinleşir. Sistem, imleç konumunu ve çevreleyen metni analiz ederek mevcut giriş karakterinin büyük harf yapılıp yapılmayacağını belirler. Koşul karşılanırsa, iOS, alanda görüntülenmeden önce küçük harfi otomatik olarak büyük harfle değiştirir.
Apple Human Interface Guidelines'a (2025) göre, otomatik büyük harflendirme, otomatik düzeltme ve tahmini metin girişini de içeren daha geniş bir tahmini giriş sisteminin parçasıdır. Kullanıcı, sistem ayarlarından (Ayarlar > Genel > Klavye) tüm bu özellikleri genel olarak devre dışı bırakabilir, ancak geliştirici bunları belirli alan düzeyinde de kontrol eder.
Otomatik düzeltmenin aksine, otomatik büyük harflendirme bir dil modeli kullanmaz — basit kurallarla çalışır: nokta ve boşluktan sonra, metnin başında, yeni satır karakterinden sonra. İstisna, bağlamdan bağımsız olarak her kelimenin ilk harfinin büyük yapıldığı words modudur.
UITextAutocapitalizationType, otomatik büyük/küçük harf dönüştürme stratejisini tanımlayan dört değerli bir numaralandırmadır. Her mod, belirli bir metin alanı türü için tasarlanmıştır ve belirli bir kullanıcı deneyimi görevini çözer.
.none modu, otomatik büyük/küçük harf dönüştürmeyi tamamen devre dışı bırakır. Tüm karakterler kullanıcının yazdığı şekilde girilir. Bu mod, şifre alanları, e-posta adresleri, takma adlar, arama sorguları ve büyük/küçük harfin sunucu tarafı veri işleme için önemli olduğu tüm alanlar için zorunludur.
.words modu, girilen her kelimenin ilk harfini büyük yapar. Sistem, kelime sınırlarını boşluklarla belirler ve boşluktan sonraki ilk karakteri büyük harfe dönüştürür. Bu mod, ad, soyadı, şehir adları, sokak adları ve her kelimenin büyük harfle başlaması gereken diğer alanlar için kullanışlıdır.
.sentences modu en yaygın olanıdır ve çoğu metin alanı için varsayılan olarak kullanılır. Sistem, bir nokta, ünlem işareti veya soru işaretinden sonra gelen boşlukla birlikte ilk harfi büyük yapar. Bu mod, notlar, mesajlar, yorumlar ve diğer çok satırlı metin alanları için idealdir.
.allCharacters modu, girilen tüm karakterleri büyük harfe dönüştürür. Bu mod, Caps Lock'un sürekli basılı tutulmasına eşdeğerdir ve verilerin büyük harf olması gereken alanlar (posta kodları, ülke kodları, kısaltmalar, sipariş numaraları) için kullanılır. Dikkatli kullanılmalıdır, çünkü büyük harfli metnin okunması daha zordur.
| Mod | Açıklama | Giriş Örneği | Öneri |
|---|---|---|---|
| .none | Değişiklik yok | ali@mail.com | E-posta, şifreler, arama |
| .words | Her kelime | Ali Yılmaz | Ad, adres, şehir |
| .sentences | Cümle başı | Merhaba. Nasılsınız? | Mesajlar, notlar |
| .allCharacters | Tümü büyük harf | ABC-123 | Kodlar, indeksler |
Otomatik büyük harflendirme mekanizması, tuş basma işlemi sırasında, karakter ekranda görüntülenmeden önce etkinleşir. Kullanıcı bir tuşa bastığında, UITextInputTraits geçerli imleç konumunu kontrol eder ve ayarlanan autocapitalizationType'a göre büyük/küçük harf dönüştürme kuralını uygular.
.sentences modu için sistem, tetikleyici karakterleri izler: nokta (.), ünlem işareti (!), soru işareti (?) ve etkinleştirildiğinde yeni satır karakterini ( ). Bir tetikleyici karakter ve ardından gelen boşluğu algıladıktan sonra sistem, bir sonraki giriş karakteri için “büyük harf bekleniyor” bayrağı ayarlar.
.words modu, boşluk karakterini tetikleyici olarak izler. Her boşluktan sonra sistem, bir sonraki kelime için büyük harf bekler. Ancak istisnalar vardır: kısa çizgi, kesme işareti ve kelime içindeki diğer noktalama işaretlerinden sonra büyük harf eklenmez. Örneğin, “O’Brien” doğru kalır.
Önemli bir özellik, otomatik büyük harflendirmenin yalnızca bir kelimenin ilk karakterinde çalışmasıdır. Kullanıcı ortasında büyük harf bulunan bir kelime girerse (örneğin iPhone veya macOS), sistem bunları değiştirmez çünkü dönüştürme yalnızca tetikleyiciden sonraki ilk karaktere uygulanır. Bu, standart olmayan büyük/küçük harfe sahip marka ve ürün adlarının etkilenmeyeceği anlamına gelir.
Otomatik büyük harflendirme devre dışı bırakılmalıdır, karakter büyük/küçük harfinin doğru veri işleme için önemli olduğu alanlarda. Yaygın durumlar: e-posta adresi alanları, takma adlar ve kullanıcı adları, şifreler, arama sorguları, URL'ler, onay kodları, IMEI ve seri numaraları. Tüm bu durumlarda, otomatik büyük/küçük harf değişiklikleri sunucu tarafı işleme sırasında hatalara neden olur.
Arama alanları (UISearchBar) için otomatik büyük harflendirme varsayılan olarak devre dışıdır ve bu kullanıcı beklentileriyle örtüşür. Bir arama sorgusu herhangi bir büyük/küçük harfte girilebilir ve sunucu genellikle kendiliğinden küçük harfe dönüştürür. Arama için otomatik büyük harflendirme etkinleştirilirse, kullanıcı her sorgunun başındaki büyük harfi manuel olarak düzeltmek zorunda kalır.
Kayıt formlarında, kullanıcı adı veya takma ad alanı .none modunda olmalıdır çünkü birçok sistem kullanıcı adlarında büyük/küçük harf ayrımı yapar. E-posta alanı da otomatik büyük harflendirme olmamalıdır — alan adları büyük/küçük harfe duyarlı olmasa da, e-postanın yerel kısmı teorik olarak duyarlı olabilir, ancak pratikte bu nadirdir.
Apple Geliştirici Belgelerine göre, secureTextEntry (şifre) olan alanlar, geliştirici açıkça farklı bir değer belirlemiş olsa bile otomatik olarak autocapitalizationType = .none'u devralır. Sistemin güvenli giriş için en yüksek önceliği vardır ve bir şifre alanı için otomatik büyük harflendirmeyi etkinleştirme girişimlerini yok sayar.
Swift'te otomatik büyük harflendirme yapılandırması, autocapitalizationType özelliği aracılığıyla yapılır. Özellik, UITextField, UITextView ve UISearchBar için kullanılabilir. Değer, hem kodda hem de Interface Builder'daki özellik denetçisinde ayarlanabilir; burada mod Capitalization olarak adlandırılır.
let nameField = UITextField()
nameField.autocapitalizationType = .words
let emailField = UITextField()
emailField.autocapitalizationType = .none
Bir iletişim formu için, her alanı anlamına göre yapılandırın: ad — .words, e-posta — .none, mesaj — .sentences. Bu kombinasyon en iyi kullanıcı deneyimini sağlar ve manuel büyük/küçük harf düzeltme ihtiyacını en aza indirir.
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
}
}
Çalışma zamanında programatik mod değişiklikleri için UITextFieldDelegate delegesini kullanın. Örneğin, bir alan farklı bağlamlarda kullanılabiliyorsa, formun mevcut işlem moduna bağlı olarak textFieldDidBeginEditing yönteminde autocapitalizationType'ı değiştirin.
func textFieldDidBeginEditing(_ textField: UITextField) {
if textField === codeField {
textField.autocapitalizationType = .allCharacters
}
}
Otomatik büyük harflendirme, kullanıcının klavyesinde ayarlanan giriş diline bağlıdır. Farklı dillerin farklı büyük/küçük harf dönüştürme kuralları olabilir. Örneğin, Türkçede “i” harfi büyük harfte “İ” (noktalı) olurken, “I” küçük harfte “ı” (noktasız) olur. iOS bu özellikleri otomatik olarak işler.
Rusça için otomatik büyük harflendirme, İngilizce ile aynı kuralları izler: noktadan sonra, cümle başında ve yeni satırdan sonra büyük harf. “yo” harfiyle ilgili sorunlar ortaya çıkabilir — sistem sözlüğünde bulunmasına rağmen, tüm klavye düzenleri bunu ana katmanda göstermez ve otomatik büyük harflendirme “yo”yu “Yo”ya doğru şekilde dönüştürür.
Çince, Japonca ve Korece için otomatik büyük harflendirme uygulanmaz çünkü bu dillerde büyük/küçük harf kavramı yoktur. İlgili klavyeler kullanılırken sistem tarafından autocapitalizationType modu yok sayılır ve alan, ayarlanan değerden bağımsız olarak .none modundaymış gibi davranır.
Arapça ve İbranice için otomatik büyük harflendirme de uygulanmaz çünkü bu diller, büyük ve küçük harf ayrımı olmadan kendi yazı sistemlerini kullanır. iOS sistemi, giriş dilini doğru şekilde algılar ve bu kavramın bulunmadığı diller için otomatik büyük harflendirme ayarlarını yok sayar.
Sıkça Sorulan Sorular
Evet, autocapitalizationType özelliği, alan zaten aktif olsa bile herhangi bir zamanda değiştirilebilir. Değişiklik bir sonraki karakter girişinde geçerli olacaktır.
Evet, isSecureTextEntry = true olan alanlar için sistem otomatik olarak autocapitalizationType = .none ayarlar. Bu davranış programatik olarak değiştirilemez.
Evet, UITextView autocapitalizationType'ı tamamen destekler. Bu, .sentences modunun en doğal şekilde çalıştığı çok satırlı alanlar için özellikle kullanışlıdır.
Bir alan secureTextEntry olarak işaretlenmemiş ancak şifre girişi için kullanılıyorsa, otomatik büyük harflendirme şifreyi değiştirebilir. Büyük/küçük harfin önemli olduğu alanlar için her zaman devre dışı bırakın.
Simülatörde, otomatik büyük harflendirme Mac donanım klavyesi aracılığıyla çalışır ve farklı davranabilir. Doğru davranış için gerçek bir cihazda test edin.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun