Otomatik Düzeltme — özü, mekanizmaları ve UITextAutocorrectionType

Yazar: IT Sectr Yayınlanma: 2026-07-08 Okuma süresi: 7 dk

Otomatik Düzeltme, metin girerken yazım hatalarını otomatik olarak düzelten iOS'ta yerleşik bir mekanizmadır. UIKit, UITextInputTraits protokolündeki autocorrectionType özelliği aracılığıyla otomatik düzeltme davranışını yönetir ve üç modu destekler: varsayılan, etkin ve devre dışı. Apple Text Programming Guide (2025)'e göre otomatik düzeltme, sistem sözlüğü ve cihazda makine öğrenimine dayalı olarak girilen metni analiz eder. Her metin alanı için ayrı ayrı autocorrectionType kullanın — bu, davranışı girilen verilerin özelliğine göre uyarlamanıza olanak tanır.

Önemli Noktalar

  • Otomatik Düzeltme, yazarken yazım hatalarını otomatik olarak düzelten bir iOS sistem mekanizmasıdır
  • UITextAutocorrectionType, her alan için ayrı ayrı üç modu destekler: .default, .yes ve .no
  • Sözlük, iOS sistem sözlüğü ve cihazda eğitilmiş bir dil modeli üzerine kuruludur
  • Safe Keyboard, şifre ve finansal veri alanları için otomatik düzeltmeyi devre dışı bırakan korumalı bir klavyedir
  • Yerelleştirme — otomatik düzeltme, ek düzenler dahil olmak üzere desteklenen tüm klavye dillerinde çalışır

Otomatik Düzeltme Nedir?

Otomatik Düzeltme, bir yazım hatası tespit edildiğinde yazılan kelimeleri otomatik olarak varsayılan olarak doğru alternatiflerle değiştiren bir iOS işletim sistemi özelliğidir. Mekanizma, UIKit metin alanları seviyesinde çalışır ve standart UITextField ve UITextView giriş öğelerini kullanan tüm uygulamalarda kullanılabilir.

Otomatik düzeltmenin merkezinde, desteklenen her dil için milyonlarca metin örneği üzerinde eğitilmiş bir dil modeli bulunur. Model tamamen cihazda (on-device) çalışır ve girilen verilerin gizliliğini garanti eder — metin analiz için Apple sunucularına gönderilmez. Her iOS güncellemesiyle model yeni kelimeler ve kurallarla iyileştirilir ve genişletilir.

Otomatik düzeltme, geliştirici tarafından açıkça devre dışı bırakılmadıkça tüm metin alanları için otomatik olarak etkinleştirilir. Kullanıcı, sistem ayarlarından (Ayarlar > Genel > Klavye > Otomatik Düzeltme) otomatik düzeltmeyi tamamen devre dışı bırakabilir, ancak geliştirici autocorrectionType özelliği aracılığıyla tek tek alanlar için bu davranışı kontrol edebilir.

WWDC 2023 Oturum 204'e göre Apple, yalnızca son kelimeyi değil tüm cümlenin bağlamını dikkate alan Transformer tabanlı gelişmiş bir otomatik düzeltme dil modeli tanıttı. Bu, önceki n-gram tabanlı modele kıyasla yanlış düzeltmeleri %30 oranında azalttı.

iOS'ta Otomatik Düzeltme Modları

UITextAutocorrectionType, belirli bir metin alanı için otomatik düzeltme davranışını belirleyen üç değere sahip bir numaralandırmadır. Her değer, Interface Builder'da ve alan oluşturulurken kodda erişilebilen autocorrectionType özelliği aracılığıyla ayarlanır.

.default Modu

.default değeri, alanın klavyenin sistem parametrelerinden genel otomatik düzeltme ayarını devraldığı anlamına gelir. Bu mod, kullanıcının seçimine saygı duyduğu için çoğu metin alanı için önerilir. Kullanıcı ayarlardan otomatik düzeltmeyi devre dışı bıraktıysa, .default olan bir alan da onu kullanmaz.

.yes Modu

.yes değeri, sistem ayarından bağımsız olarak alan için otomatik düzeltmeyi zorla etkinleştirir. Bu mod yalnızca yazım doğruluğunun kritik olduğu alanlar için kullanılmalıdır — örneğin, metin düzenleyicilerde, not giriş alanlarında veya mesajlarda. Apple, .yes'in dikkatli kullanılmasını önerir çünkü zorla etkinleştirme kullanıcı beklentileriyle çelişebilir.

.no Modu

.no değeri, belirli bir alan için otomatik düzeltmeyi devre dışı bırakır. Bu mod, şifre alanları (güvenli metin girişi), e-posta adresleri, doğrulama kodları ve arama sorguları için zorunludur. Bu alanlarda otomatik düzeltme yalnızca yararsız değil, aynı zamanda zararlıdır — doğru girilen verileri hatalı alternatiflerle değiştirebilir.

ModDeğerÖneri
.defaultSistem ayarını devralırÇoğu giriş alanı
.yesZorla etkinMetin düzenleyiciler, notlar
.noZorla devre dışıŞifreler, e-posta, arama, kodlar

Dil Modeli ve Sözlük

iOS otomatik düzeltmesinin dil modeli, statik bir sözlük ve dinamik olarak eğitilmiş bir modelin kombinasyonunu kullanır. Sistem sözlüğü her dil için en sık kullanılan kelimeleri içerirken, Transformer tabanlı dil modeli bağlamı ve değiştirme olasılığını analiz eder. Model, kullanıcı tarafından girilen metinlere dayalı olarak cihazda eğitilir.

Kullanıcılar, klavye ayarları (Ayarlar > Genel > Klavye > Metin Değiştirme) aracılığıyla kişisel bir sözlüğe kelime ekleyebilir. Eklenen kelimeler iCloud'da saklanır ve aynı Apple ID kullanılarak cihazlar arasında senkronize edilir. Sistem, kişisel sözlükteki kelimeleri düzeltmez; bu, adlar, markalar ve teknik terimler için kullanışlıdır.

Uzmanlık alanları — tıbbi, hukuki, teknik — için standart sözlük yetersiz terimler içerebilir. Bu tür uygulamalarda, ilgili alanlar için otomatik düzeltmeyi devre dışı bırakmanız veya iOS 17+ için UIResponder yöntemi .replacementDictionary aracılığıyla özel metin değiştirme kullanmanız önerilir.

Apple Machine Learning Research (2024)'e göre, Transformer mimarisine dayalı yeni otomatik düzeltme modeli, önceki modeldeki 3 jetona kıyasla 10 bağlam jetonuna kadar işler ve kullanıcının niyetini daha doğru belirlemesine olanak tanır. Model yalnızca yazımı değil, cümlenin dilbilgisel yapısını da dikkate alır.

Safe Keyboard ve Gizli Veriler

Safe Keyboard, secureTextEntry = true olan alanlar için otomatik olarak etkinleştirilen korumalı bir giriş modudur. Bu modda, otomatik düzeltme, otomatik büyük harf yazma ve tahmine dayalı giriş, ayarlanan autocorrectionType değerlerinden bağımsız olarak sistem tarafından devre dışı bırakılır. Sistem ayrıca kullanıcı sözlüğüne ve metin değiştirmelere erişimi de engeller.

Safe Keyboard, otomatik düzeltme mekanizmaları aracılığıyla girilen verilerin sızmasını önler. Otomatik düzeltme bir şifre alanı için etkin olsaydı, sistem girilen şifreyi kullanıcı sözlüğünde saklayabilir veya model eğitimi için Apple sunucularına gönderebilirdi. Safe Keyboard, gizli verilerin uygulamayı terk etmemesini sağlar.

Finansal uygulamalar için Safe Keyboard yalnızca secureTextEntry olan alanlar için otomatik olarak etkinleştirilir. Kart numarası, son kullanma tarihi ve CVV kodu giriş alanları için geliştiricinin autocorrectionType = .no ve keyboardType = .numberPad veya .phonePad ayarlayarak otomatik düzeltmeyi manuel olarak devre dışı bırakması gerekir.

iOS 17'den itibaren Safe Keyboard, üçüncü taraf klavyeler aracılığıyla dinlemeye karşı korumayı destekler. Kullanıcı App Store'dan bir klavye yüklediyse, secureTextEntry etkinleştirildiğinde, varsayılan olarak seçilmiş olsa bile sistem klavyesi otomatik olarak üçüncü taraf klavyenin yerini alır. Bu, şifrelerin yalnızca güvenli sistem klavyesi aracılığıyla girilmesini sağlar.

Swift Kodu ile Yapılandırma

Swift'te otomatik düzeltme yönetimi, UITextField ve UITextView nesnelerinin autocorrectionType özelliği aracılığıyla yapılır. Özellik hem okuma hem de yazma için kullanılabilir ve giriş bağlamına bağlı olarak dinamik olarak değiştirilebilir. Interface Builder aracılığıyla yapılandırma, özellik denetçisinde Correction adı altında kullanılabilir.

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

Bir giriş formu için, otomatik düzeltme şifre alanı için devre dışı bırakılmalı ve giriş alanı için varsayılan olarak etkinleştirilmelidir. E-posta alanının da otomatik düzeltme olmadan bırakılması önerilir, çünkü @ sembolü ve alan adları sıklıkla yanlış değiştirilir. Kullanıcı adı alanı için, kullanıcı adı okunabilir bir kelimeyse otomatik düzeltme etkinleştirilebilir.

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 için otomatik düzeltme yapılandırması benzer şekilde yapılır. Bu, otomatik düzeltmenin en büyük faydayı sağladığı ancak teknik terimler veya kod girerken de rahatsızlık yaratabileceği yorumlar, mesajlar ve notlar için çok satırlı giriş alanlarında özellikle önemlidir.

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

Dinamik değişiklikler için UITextFieldDelegate protokolünü kullanın. textFieldDidBeginEditing yöntemi, bir alan etkinleştirildiğinde çağrılır ve burada geçerli bağlama veya uygulama çalışması sırasında değişebilen alanın rolüne bağlı olarak autocorrectionType'ı değiştirebilirsiniz.

Otomatik Düzeltme Ne Zaman Devre Dışı Bırakılmalı

Otomatik düzeltme devre dışı bırakılmalıdır girilen verilerin doğruluğunun kritik olduğu ve sistemin kullanıcının niyetini doğru şekilde belirleyemediği alanlarda. Ana durumlar: şifre ve güvenli veri alanları, e-posta adresi giriş alanları, arama dizeleri, kod ve program kodu giriş alanları ile standart olmayan veri biçimlerine sahip alanlar.

Arama çubukları (UISearchBar) için otomatik düzeltme varsayılan olarak devre dışıdır ve bu kullanıcı beklentileriyle örtüşür. Arama yaparken kullanıcı eksik kelimeler, teknik terimler veya farklı dillerde sorgular girebilir ve otomatik düzeltme yalnızca engel olur. URL ve alan adı giriş alanları için de benzer şekilde.

Mesajlaşma uygulamalarında ve iletişim uygulamalarında otomatik düzeltme genellikle etkindir, ancak argo, kısaltmalar ve resmi olmayan kelimeler girerken rahatsızlık yaratabilir. Bu gibi durumlarda kullanıcı, klavye ayarları aracılığıyla otomatik düzeltmeyi devre dışı bırakabilir veya geliştirici, uygulama arayüzünde doğrudan bir anahtar sağlayabilir.

Apple Human Interface Guidelines'a göre, girilen verilerin sistem sözlüğünde bulunamayabileceği herhangi bir alan için otomatik düzeltme devre dışı bırakılmalıdır: sipariş numaraları, rezervasyon kodları, tanımlayıcılar, IMEI, MAC adresleri. Alan standart olmayan bir biçimde alfanümerik veri kabul ediyorsa — otomatik düzeltmeyi devre dışı bırakın.

Sıkça Sorulan Sorular

Uygulamanın tamamında otomatik düzeltme nasıl tamamen devre dışı bırakılır?

Tüm uygulama için genel bir otomatik düzeltme devre dışı bırakma yoktur. Her metin alanı için ayrı ayrı autocorrectionType = .no ayarlamak veya geçersiz kılınmış bir değerle UITextField alt sınıfı oluşturmak gerekir.

Simülatörde otomatik düzeltme neden çalışmıyor?

Simülatör, Mac klavyesinden basitleştirilmiş bir giriş modeli kullanır. Otomatik düzeltme dil modeli simülatörde etkin değildir — test için gerçek bir cihaz kullanın.

Kullanıcı sözlüğüne kelime nasıl eklenir?

Kullanıcı, Ayarlar > Genel > Klavye > Metin Değiştirme aracılığıyla kelime ekleyebilir. Uygulamanın sistem otomatik düzeltme sözlüğüne programatik olarak kelime eklemesi için bir API yoktur.

keyboardType ayarlamak otomatik düzeltmeyi devre dışı bırakır mı?

Hayır, keyboardType otomatik düzeltmeyi etkilemez. .numberPad klavyesi için bile, autocorrectionType aracılığıyla açıkça devre dışı bırakılmadıysa otomatik düzeltme etkin olabilir.

Üçüncü taraf klavyelerde otomatik düzeltme çalışır mı?

Üçüncü taraf klavyeler kendi otomatik düzeltme mekanizmalarına sahiptir ve sistem UITextAutocorrectionType'ını kullanmaz. Davranış, belirli klavyenin uygulanmasına bağlıdır.

Özet

  • Otomatik Düzeltme, metin alanlarındaki yazım hatalarını otomatik olarak düzelten bir iOS sistem özelliğidir
  • Üç mod UITextAutocorrectionType: .default (ayarları devralır), .yes (etkin), .no (devre dışı)
  • Transformer dil modeli 10 bağlam jetonuna kadar işler ve tamamen cihazda çalışır
  • Safe Keyboard, secureTextEntry = true olan alanlar için otomatik düzeltmeyi otomatik olarak devre dışı bırakır
  • Otomatik düzeltme yararsızdır şifre, e-posta, kod, arama alanları ve standart olmayan veri biçimleri için
  • Yapılandırma her alan için ayrı ayrı autocorrectionType özelliği aracılığıyla yapılır
  • Öneri — otomatik düzeltme davranışını etkin bir dil modeli olan gerçek bir cihazda test edin

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.

Projeyi tartış

Ayrıca okuyun