bagaimana cara menambahkan tindakan pada kunci kembali UITextField?


91

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?


Jawaban:


186

Pastikan "self" berlangganan UITextFieldDelegatedan 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
}

11

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 UITextFieldDelegateekstensi pengontrol tampilan Anda

extension YourViewController: UITextFieldDelegate {
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        if textField == inputText {
            textField.resignFirstResponder()
            return false
        }
        return true
    }
}

4

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...
}

-1

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)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.