Dengan SDK iOS:
Saya memiliki UIView
dengan UITextField
s yang memunculkan keyboard. Saya membutuhkannya untuk dapat:
Izinkan menggulir konten
UIScrollView
untuk melihat bidang teks lainnya setelah keyboard ditampilkanSecara otomatis "melompat" (dengan menggulir ke atas) atau memendek
Saya tahu bahwa saya membutuhkan UIScrollView
. Saya sudah mencoba mengubah kelas saya UIView
menjadi UIScrollView
tetapi saya masih tidak dapat menggulir kotak teks ke atas atau ke bawah.
Apakah saya harus baik UIView
dan UIScrollView
? Apakah satu masuk ke yang lain?
Apa yang perlu diterapkan untuk menggulir secara otomatis ke bidang teks aktif?
Idealnya sebanyak mungkin pengaturan komponen mungkin dilakukan di Interface Builder. Saya hanya ingin menulis kode untuk apa yang membutuhkannya.
Catatan: UIView
(atau UIScrollView
) yang saya kerjakan ditampilkan oleh tabbar ( UITabBar
), yang perlu berfungsi seperti biasa.
Sunting: Saya menambahkan bilah gulir hanya untuk saat keyboard muncul. Meskipun itu tidak diperlukan, saya merasa seperti itu menyediakan antarmuka yang lebih baik karena dengan begitu pengguna dapat menggulir dan mengubah kotak teks, misalnya.
Saya sudah membuatnya bekerja di mana saya mengubah ukuran bingkai UIScrollView
ketika keyboard naik dan turun. Saya hanya menggunakan:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
//Keyboard becomes visible
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50); //resize
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
//keyboard will hide
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height + 215 - 50); //resize
}
Namun, ini tidak secara otomatis "bergerak ke atas" atau memusatkan bidang teks yang lebih rendah di area yang terlihat, yang benar-benar saya inginkan.