2011-07-22 21 views
9

Program aracılığıyla UITextView oluşturan bir uygulama oluşturuyorum. Sorun, kullanıcı metin veya uygulamada yazı yazdığında metni belirlediğinde, kelimeler sonraki satıra kaydırmak yerine bir satıra ve ekrana yayılır. Arabirim oluşturucu ile bir UITextView oluşturduğumda, metin otomatik olarak sarar, ancak program aracılığıyla oluşturulduğunda değil.Metin satırlarını otomatik olarak saran bir UITextView nasıl oluşturulur?

Kodu:

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(100, 12, 210, 60)]; 
[[self view] addSubview:textView]; 
[textView becomeFirstResponder]; 
+0

TextView'lar otomatik metin kaydırma ekleyin: http: //developer.apple.com/library/ios/#documentation/uikit/reference/uitextview_class/Reference/UITextView.html Are textFields demek istemediğinden emin misin? – chandhooguy

cevap

2

UITextView ve UITextField farklı sınıflardır. UITextField tek satırdır ve UITextView çok satırlıdır. Program aracılığıyla UITextField yerine UITextView oluşturun ve beklediğiniz problemi çözdünüz.

+6

Kodundan, 'UITextView' örneğini oluşturduğu oldukça açık. – PengOne

+1

Onun cevabının ilk satırı "Ben bir UITextField 'programatik olarak oluşturur bir uygulama yaratıyorum", bu yüzden benim cevabım. – mxcl

+0

Cevabını düzenlediğini fark ettim. Ben 2-1 oranını onun kodunda bir yazım hatası olduğunu ve UITextView yerine UITextField kullanıyordum, üç ya da dört kez yaptığını gördüm, sağlanan kanıtı yapmak ve uydurmak kolay bir hatadır. Ayrıca, özellikle, UITextField'ın devre dışı bırakmaya çalıştığı zaman yukarıdaki kilitlenmeyi açıklayan bir horizontalScrollBar yok. En azından, cevabımı verdiğiniz eksi bir tanesini geri almalısınız: P – mxcl

0

UITextView'un tamamı, birden çok metin satırına izin vermek içindir. belgelerden;

UITextView sınıf kaydırılabilir, satırlı metin bölge için davranışı uygular. Sınıf, özel yazı tipi, rengi ve hizalamayı kullanarak metin görünümünü destekler ve ayrıca metin düzenlemeyi destekler. genellikle, geniş bir metin belgesinin gövdesini görüntülerken gibi çok sayıda metin satırını görüntülemek için bir metin görünümü kullanır. UIScrollView den

UITextView yana devralır, yatay kaydırma devre dışı işbirliği zorlamak mümkün olabilir. Bunu yapmak için contentSize, ör.

CGSize scrollableSize = CGSizeMake(210, 480); 
[textView setContentSize:scrollableSize]; 

Bu

210 genişliği düzeltmek ve yüksekliği 480 geçmek için izin verir. textView'u (210,60) boyutuna ayarladığınızdan, bu dikey kaydırma işlemine izin vermeli, ancak yatay kaydırmaya izin vermemelidir. iOS 7 beri Temin

+0

Bu sorun olabilir, ama benim durumumda değil. Metin görünümü tüm ekranın boyutu olduğunda bile, birçok satır için yer varsa, metin otomatik olarak sarmalanmaz. Başka fikirlerin var mı? – Greg

+0

@Greg: Az önce etrafa baktım ve bu soruyu sorup hiçbir çözüm bulamayan Jun 09 ile 11 Ocak arasında 3 mesaj buldum. – PengOne

+0

Bu, bunun çok basit bir problem olduğunu düşünüyorum. Birçok uygulama, sarma metinli UITextViews kullanır ve bunların hepsi IFB ile oluşturulamaz. – Greg

2

:

textView.textContainer.lineBreakMode = NSLineBreakByWordWrapping; 
İlgili konular