Membuat Next Button Keyboard Bekerja

Tombol next pada soft keyboard dapat dibuat dengan men set return button style menjadi next. Namun itu hanya merubah tampilan saja yang tidak berguna bila tidak diatur.

Dengan membuat objek yang perannya sebagai UITextFieldDelegate, kita dapat mengetahui kapan tombol tersebut ditekan. Yaitu lewat fungsi shouldReturn( textField: UITextField ) -> Bool . Nah dari sinilah kita bisa membuka textfield berikutnya yang harus diedit ketika tombol next ditekan.

Ada banyak cara untuk mengerjakannya dan secara umum dapat dibagi menjadi dua:

  1. Static
  2. Dynamic

Cara Static

Di sini kita tentukan textfield yang akan dibuka (becomeFirstResponder) berdasarkan textField yang sedang aktif.

Misalkan ada UITextField dua biji: txNama dan txLevelKejujuran

Bila yang aktif (yang sedang diedit) saat ini adalah txNama maka tutup txNama dengan resignFirstResponder dan buka txLevelKejujuran dengan becomeFirstResponder.
Selain itu maka tutup saja apapun yang sedang aktif.

Untuk jumlah textfield yang sedikit ( < 4 ) dan sekitarnya, tentu masih mudah untuk diterapkan. Tapi bagaimana bila seluruh View berisi lebih dari 10 UITextField. Waaaw.

Cara Dinamic

Cara ini memang akan lebih merepotkan namun percayalah tiada yang sia-sia. Hasil dari repot itu ialah kita tidak perlu lagi menentukan secara manual textfield mana dibuka setelah textfield yang mana.

Pertama yang dibutuhkan adalah dua buah property pada objek yang berperan sebagai UITextFieldDelegate yang kemungkinan besar adalah ViewController yang terpasang outlet UITextField di dalamnya.
Dua property tersebut adalah:
List dari UITextField dan activeTextField

1
2
var  textFields: [ UITextField ] = []
activeTextField: UITextField?

Lalu silahkan textFIelds diinisialisasi dengan mengisikan outlet-outlet text field sesuai urutannya. Untuk activeTextField tidak perlu diinisalisasi karena tipenya yang optional yang default nil.