Saya mengembangkan aplikasi di mana pengguna harus menulis beberapa informasi. Untuk keperluan ini saya memerlukan UITextField
yang multi-line (secara umum UITextField
adalah satu baris).
Karena saya Googling, saya menemukan jawaban untuk menggunakan UITextView
alih-alih UITextfield
untuk tujuan ini.
ios
uitextfield
uitextview
raaz
sumber
sumber
Jawaban:
UITextField
khusus satu-line saja.Pencarian Google Anda benar, Anda harus menggunakan
UITextView
alih-alihUITextField
untuk menampilkan dan mengedit teks multiline.Di Interface Builder, tambahkan
UITextView
tempat yang Anda inginkan dan pilih kotak "dapat diedit". Ini akan menjadi multiline secara default.sumber
Anda bisa memalsukan UITextField menggunakan UITextView. Masalah yang akan Anda miliki adalah Anda kehilangan fungsionalitas tempat penampung.
Jika Anda memilih untuk menggunakan UITextView dan membutuhkan placeholder, lakukan ini:
Di viewDidLoad Anda, atur warna dan teks ke placeholder:
Lalu buat placeholder menghilang ketika UITextView Anda dipilih:
Saat pengguna selesai mengedit, pastikan ada nilai. Jika tidak ada, tambahkan placeholder lagi:
Fitur lain yang mungkin perlu Anda tiru:
UITextField sering menggunakan huruf kapital untuk setiap huruf, Anda dapat menambahkan fitur itu ke UITableView:
UITextField biasanya tidak menggulir:
sumber
Ok saya melakukannya dengan beberapa trik;) Pertama membangun
UITextField
dan meningkatkannyasize
seperti ini:Kemudian buat
UITextView
persis di area yang sama dengan yang Anda buatUITextField
, dan hapusbackground color
. Sekarang sepertinya kamu memiliki beberapa barisTextField
!sumber
UITextView
. Inti dari memiliki UITextField adalah berperilaku berbeda dari aUITextView
.UITextView
danUITextfield
: mereka mewarisi dariUIScrollView
vsUIControl
, tidak-dapat-diedit-oleh-standar vs yang dapat diedit-oleh-standar, multiline vs satu-baris, protokol delegasi yang berbeda, no-placeholder vs placeholder.UITextView
adalah untuk paragraf teks. Gunakan jika Anda membutuhkan paragraf teks, dan bukan sebaliknya.Selain dari perilaku beberapa baris, perbedaan utama antara UITextView dan UITextField adalah bahwa UITextView tidak mengusulkan placeholder. Untuk melewati batasan ini, Anda dapat menggunakan UITextView dengan "placeholder palsu."
Lihat pertanyaan SO ini untuk detail: Placeholder di UITextView .
sumber
Jika Anda harus memiliki UITextField dengan 2 baris teks, satu opsi adalah menambahkan UILabel sebagai subview dari UITextField untuk baris teks kedua. Saya memiliki UITextField di aplikasi saya yang seringkali tidak disadari pengguna dapat diedit dengan mengetuk, dan saya ingin menambahkan beberapa teks subtitle kecil yang bertuliskan "Ketuk untuk Mengedit" ke UITextField.
sumber
Ya, UITextView adalah yang Anda cari. Anda harus berurusan dengan beberapa hal secara berbeda (seperti tombol kembali) tetapi Anda dapat menambahkan teks ke dalamnya, dan itu akan memungkinkan Anda untuk menggulir ke atas dan ke bawah jika ada terlalu banyak teks di dalamnya.
Tautan ini memiliki info tentang cara membuat layar untuk memasukkan data:
buat layar entri data
sumber
gunakan UITextView bukan UITextField
sumber
Tambahan untuk jawaban h4xxr di atas, cara yang lebih mudah untuk menyesuaikan ketinggian UITextField adalah dengan memilih gaya batas persegi di atribut inspektur-> Text Field. (Secara default, gaya perbatasan dari UITextfield adalah elips.)
Referensi: Dijawab Brian di sini: Cara mengatur ketinggian UITextField?
sumber
Ada opsi lain yang berfungsi untuk saya:
Subkelas UITextField dan timpa:
Dalam metode ini Anda dapat misalnya:
Kode ini akan membuat teks menggunakan baris sebanyak yang diperlukan jika kotak memiliki ruang yang cukup. Anda dapat menentukan atribut lainnya tergantung pada kebutuhan Anda.
Jangan gunakan:
yang akan memaksa rendering teks satu baris
sumber