Katakanlah saya memiliki kode berikut:
IBOutlet UITextField* nameTextField;
IBOutlet UILabel* greetingLabel;
Saya ingin greetingLabel
membaca "Halo [nameTextField]" segera setelah pengguna menekan tombol apa saja.
Yang saya butuhkan pada dasarnya adalah iPhone yang setara dengan metode delegasi Kakao controlTextDidChange
.
The textField:shouldChangeCharactersInRange:
metode delegasi disebut setiap kali keystroke terjadi:
- (BOOL) textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
Argumen string mengembalikan karakter yang ditekan. Namun nilai sebenarnya textField
( nameTextField.text
) tetap kosong.
Apa yang kulewatkan di sini? (Saya ingin nameTextField
mencerminkan string persis yang telah dimasukkan pengguna sejauh ini).
sumber
[textField addTarget:self action:@selector(textFieldEditingChanged:) forControlEvents:UIControlEventEditingChanged]
;).Anda dapat mendaftarkan tindakan untuk acara UIControlEventEditingChanges di bidang teks:
...
sumber
UITextField
memiliki pemberitahuanUITextFieldTextDidChange
yang akan diaktifkan setiap kali teks berubah jika Anda mendaftar untuk itu. Cukup daftar untuk notifikasi itu dan dalam metode yang dipanggil dengan notifikasi, ubah teks label.Untuk menambahkannya, objek yang diteruskan ke penangan notifikasi Anda akan memiliki teks
UITextField
.Semoga membantu.
sumber