Saya memiliki tombol dan bidang teks teks dalam pandangan saya. ketika saya mengklik kolom teks, keyboard muncul dan saya dapat menulis di kolom teks dan saya juga dapat menutup keyboard dengan mengklik tombol dengan menambahkan:
[self.inputText resignFirstResponder];
Sekarang saya ingin mengaktifkan tombol kembali keyboard. ketika saya akan menekan pada keyboard keyboard akan hilang dan sesuatu akan terjadi. Bagaimana saya bisa melakukan ini?
ios
objective-c
iphone
swift
uitextfield
razibdeb.dll
sumber
sumber
Jawaban:
Pastikan "self" berlangganan
UITextFieldDelegate
dan menginisialisasi inputText dengan:self.inputText.delegate = self;
Tambahkan metode berikut ke "self":
- (BOOL)textFieldShouldReturn:(UITextField *)textField { if (textField == self.inputText) { [textField resignFirstResponder]; return NO; } return YES; }
Atau di Swift:
func textFieldShouldReturn(_ textField: UITextField) -> Bool { if textField == inputText { textField.resignFirstResponder() return false } return true }
sumber
Dengan gaya ekstensi di swift 3.0
Pertama, siapkan delegasi untuk bidang teks Anda.
override func viewDidLoad() { super.viewDidLoad() self.inputText.delegate = self }
Kemudian sesuaikan dengan
UITextFieldDelegate
ekstensi pengontrol tampilan Andaextension YourViewController: UITextFieldDelegate { func textFieldShouldReturn(_ textField: UITextField) -> Bool { if textField == inputText { textField.resignFirstResponder() return false } return true } }
sumber
Sementara jawaban lain berfungsi dengan benar, saya lebih suka melakukan yang berikut:
Dalam viewDidLoad (), tambahkan
self.textField.addTarget(self, action: #selector(onReturn), for: UIControl.Event.editingDidEndOnExit)
dan tentukan fungsinya
@IBAction func onReturn() { self.textField.resignFirstResponder() // do whatever you want... }
sumber
Gunakan mekanisme Target-Action UIKit untuk "primaryActionTriggered" UIEvent yang dikirim dari UITextField saat tombol selesai keyboard diketuk.
textField.addTarget(self, action: Selector("actionMethodName"), for: .primaryActionTriggered)
sumber