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?

razibdeb.dll
sumber
1
Kemungkinan duplikat: stackoverflow.com/questions/4761648/…
wquist

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
}
Ander
sumber
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
    }
}
Fangming
sumber
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...
}
Malfungsi
sumber
-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)
Blazej SLEBODA
sumber