UITextField otomatik büyük harf yapma türü - iPhone Uygulaması


112

Otomatik büyük harf yapma türünü a için ayarlamanın bir yolu var mı, UITextFieldböylece her kelimenin ilk harfi varsayılan olarak büyük yazılır ?

Bu İstediklerime Bir Örnek


45
Öte yandan, dokümantasyonu açmak ve bunun için taramak için tam bir dakika harcamak yerine, 'UITextField büyük harf kullanımını' google'da açıp 2 saniye içinde açabilmek güzel. StackOverflow IS belgeleri.
Shaun Budhram

1
Bunun gibi sorularla tökezlemek beni mutlu ediyor: 1) insanlar tutarlı doğrudan sorular sorabiliyor (kapsamı ne olursa olsun) ve 2) insanlar en iyi soruları
yorumluyor

Yanıtlar:


237

kullanım textField.autocapitalizationType = UITextAutocapitalizationTypeWords;

Daha fazla bilgi için lütfen okuyun: UITextInputTraits Protokol Referansı


2
Metni alana yapıştırmanızın bir faydası olmaz. Bu durumda, metin girişini yetkilendirin ve her kelimenin ilk harfini değiştirin
HotJard

Biraz daha HotJard detaylandırmak ister misiniz? Bir metnin nasıl yapıştırılacağını ve otomatik olarak büyük harf yapılacağını bilmek istiyorum.
vnchopra

5
Çalışmıyor, Xcode 6 iOS 8 Swift'de denedim. Kod ve arayüz oluşturucuda yaptım, ikisi de çalışmıyor.
Van Du Tran

10
Arayüz oluşturucudaki klavyenin varsayılan olarak ayarlandığından emin olun. Aksi takdirde işe yaramaz
OscarVGG

3
Ayrıca, işletim sistemi ayarlarında (ayarlar-> genel-> klavye) otomatik büyük harf özelliğini etkinleştirdiğinizden emin olun, iOS ayarları değerleri metin alanında ayarladığınız her şeyi geçersiz kılar
Lope

38

Yapmak istediğimiz, metin alanlarını ayarlamaktır autocapitalizationType.

Objective-C:

self.textfield.autocapitalizationType = UITextAutocapitalizationTypeWords

Swift:

self.textfield.autocapitalizationType = .words

Burada birkaç seçenek var:

görüntü açıklamasını buraya girin

  • allCharacters temelde kapak kilidi olan shift tuşuna çift dokunmakla aynıdır.
  • none oldukça açıklayıcıdır, klavye asla harfleri büyük harf yapmaya çalışmaz.
  • sentences bir bitiş işareti noktalama işaretinden sonra sonraki kelimeyi büyük harf yapmaya çalışacaktır.
  • words her yeni kelimeyi (bir boşluktan sonra) büyük harfle yazmaya çalışacak, bu da tam olarak aradığınız şey gibi görünüyor.

Bu özellik, uygun metin alanını seçtiğinizde arayüz oluşturucunun Nitelikler Denetçisinden de ayarlanabilir:

görüntü açıklamasını buraya girin

"Büyük harf kullanımı" bu gruptaki ilk seçenektir, metin alanı için minimum yazı tipi boyutunu seçmeyi geçti.


8

Özelliğin capitalization"Kelimeler" olarak ayarlanması, kullanıcının büyük harfli kelimeler girmesini önerir . Bu, klavye üzerinde kaydırmayı kaldırarak kullanıcı tarafından geçersiz kılınabilir. Yapılacak en iyi şey, koddaki kelimeleri büyük harfle yazmaktır:

NSString *text = [myTextField.text capitalizedString];

Bu, tüm dizeyi büyük harfle yazacaktır, UITextAutocapitalizationTypeWords, yazılan her sözcükteki ilk harfi büyük yapar.
Jacob

OP'nin istediği bu olmasa da, gerçekten yararlı buldum! Bir yere kaydedilmiş bir NSString vardı, bu tamamen büyük harfli. Bir UITextField metnini orijinal dizeyle karşılaştırmam gerekiyordu ve tavsiyenizi kullanmak beni bir şeyleri kullanıcıma açıklama zorunluluğundan kurtardı (tüm işi Objective c'nin yapmasına izin
verdim :)

7

Evet. InterfaceBuilder'da, textField öznitelik denetçisinde, Büyük Harf Kullanımı özelliğini Kelimeler olarak ayarlayabilirsiniz.


6

Obj-C için bir cevap var, Swift için buradayım;

textField.autocapitalizationType = UITextAutocapitalizationType.words

veya daha kısa yol

textField.autocapitalizationType = .words

.Words ve .allCharacters'ı test ettim. Simülatörde çalışıyor. Bağlı bir iPhone X'de yok. Xcode 10.1, iPhone 12.1.
geohei

1
-> Genel -> Otomatik Düzeltme / Otomatik Büyük Harf ayarında kapatılırsa çalışmayacağım.
Sheetal Shinde

1

Bunu Storyboard veya .xib dosyasından bile yapabilirsiniz. Metin alanını seçmeniz yeterlidir ve sağdaki nitelik denetçisinde, size uygun olanı seçebileceğiniz bir Büyük Harf Kullanımı bölümü vardır. Sizin durumunuzda büyük harf "Kelimeler".


0

Xamarin.ios / Monotouch'ta bu benim için çalıştı:

textField.AutocapitalizationType = UITextAutocapitalizationType.Words;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.